一、Mybatis返回id
在Mybatis中,当执行insert语句时,可以通过标签获取插入的主键id。通过这个id,我们可以进一步操作插入的数据。
// 使用标签获取插入的主键id SELECT LAST_INSERT_ID() INSERT INTO users (username, password) VALUES (#{username}, #{password}) // 调用插入方法并获取插入的主键id User user = new User("testUser", "123456"); userMapper.insertUser(user); Integer id = user.getId();
这里,我们可以看到通过使用标签,Mybatis返回了插入数据的主键id。使用这个id,我们可以方便地获取插入的数据。同时,也可以在需要的地方,使用这个id进行相关操作。
二、Mybatis返回主键
除了使用标签获取主键id外,我们还可以通过resultType指定返回数据的类型,从而获取主键。如下所示:
// 设置返回类型为Integer,获取返回的主键id INSERT INTO users (username, password) VALUES (#{username}, #{password}) // 调用插入方法并获取插入的主键id User user = new User("testUser", "123456"); Integer id = userMapper.insertUser(user);
在这里,我们可以发现,通过设置insert语句的resultType为Integer,可以直接返回插入后的主键id。这个方法与使用标签是等效的。
三、Mybatis返回id集合
在需要获取多个id时,我们可以使用标签的order属性。该属性指定了返回id的顺序。当order为BEFORE时,表示返回插入语句执行前生成的id,当order为AFTER时,表示返回插入语句执行后生成的id。
// 在插入多条数据时,设置标签的order属性,以返回id集合 SELECT LAST_INSERT_ID() INSERT INTO users (username, password) VALUES (#{user.username}, #{user.password}) // 插入多条数据,并获取对应的id集合 List userList = new ArrayList(); userList.add(new User("testUser1", "123456")); userList.add(new User("testUser2", "123456")); userMapper.insertUsers(userList); List idList = userList.stream().map(User::getId).collect(Collectors.toList());
在这里,我们可以看到通过设置标签的order属性,Mybatis返回了插入数据的id集合。通过操作这个集合,我们可以获取插入的多条数据对应的id。
四、Mybatis删除返回int值
当执行delete语句时,我们可以获取该语句操作的数据条数,可以使用int类型接收返回结果。
// 删除指定id的用户,并返回操作的数据条数 DELETE FROM users WHERE id = #{id} // 调用删除方法并接收返回值 int result = userMapper.deleteUserById(1);
在这里,我们可以看到通过接收返回值,我们能够获取到执行delete语句所影响的数据条数。这个返回值可以方便我们进行操作。例如,当返回结果为0时,说明没有对应的数据被删除。
五、Mybatis返回map
有时候,我们需要返回一些特定的数据,可以使用map来接收返回结果。如下所示:
// 查询指定id的用户,返回一个map类型的结果 SELECT id, username, password FROM users WHERE id = #{id} // 调用查询方法并接收返回值 Map resultMap = userMapper.getUserById(1); Integer id = (Integer) resultMap.get("id"); String username = (String) resultMap.get("username"); String password = (String) resultMap.get("password");
在这里,我们可以看到通过设置返回类型为map,以及sql语句中选择需要返回的列,我们可以得到一个map类型的返回值。通过这个返回值,我们可以方便地获取需要的数据。
六、Mybatis返回int
当执行update语句时,我们可以获取该语句操作的数据条数,可以使用int类型接收返回结果。
// 更新指定id的用户信息,并返回操作的数据条数 UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id} // 调用更新方法并接收返回值 User user = new User(1, "newUsername", "newPassword"); int result = userMapper.updateUser(user);
在这里,我们可以看到通过接收返回值,我们能够获取到执行update语句所影响的数据条数。这个返回值可以方便我们进行操作。例如,当返回结果为0时,说明没有对应的数据被更新。
七、Mybatis查询返回list
Mybatis最常用的查询语句返回结果是list类型,该类型可以存储多个查询结果。
// 查询所有用户信息,返回一个list类型的结果 SELECT id, username, password FROM users // 调用查询方法并接收返回值 List userList = userMapper.getAllUsers();
通过这个例子,我们可以看到Mybatis最常用的查询语句返回结果是list类型。该类型可以存储多个查询结果,非常适合大量数据的查询操作。
八、Mybatis返回多个结果集
在使用存储过程等需要返回多个结果集的操作时,Mybatis也可以方便地支持多个结果集的返回。
// 查询多个结果集 { CALL usp_multiple_results(#{param1}, #{param2}, #{resultSet1, jdbcType=CURSOR, mode=OUT}, #{resultSet2, jdbcType=CURSOR, mode=OUT}, #{resultSet3, jdbcType=CURSOR, mode=OUT})} // 调用查询方法并接收返回值 Map resultMap = userMapper.getMultipleResultSets(param1, param2); List
通过这个例子,我们可以看到Mybatis可以方便地支持多个结果集的返回。通过设置标签的resultSets属性,我们可以获取多个结果集,并进行处理。
九、Mybatis返回integer
有时候,我们需要返回一些数字类型的数据,可以使用Integer来接收。
// 查询用户总数,返回一个integer类型的结果 SELECT COUNT(*) FROM users // 调用查询方法并接收返回值 int count = userMapper.getUserCount();
通过这个例子,我们可以看到Mybatis可以使用Integer来接收数字类型的数据。这个返回类型比较灵活,可以适应不同的需求。
原创文章,作者:HZXFF,如若转载,请注明出处:https://www.506064.com/n/333967.html