<selectid="selectUserById"resultType="com.example.entity.User"> select * from user where id = #{id} </select>
测试类中测试。
1 2 3 4 5 6 7 8
@Test publicvoidtsetSelectUserById(){ SqlSession session = MybatisUtils.getSession(); // 获取SqlSession连接。 UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUserById(1); System.out.println(user); session.close(); }
根据密码和名字查询用户(使用Map)
在接口方法中,参数直接传递Map
1
User selectUserByNP2(Map<String,Object> map);
编写sql语句的时候,需要传递参数类型,参数类型为map
1 2 3
<selectid="selectUserByNP2"parameterType="map"cresultType="com.example.entity.User"> select * from user where name = #{username} and pwd = #{pwd} </select>
在使用方法的时候, Map的 key 为 sql中取的值即可,没有顺序要求。
1 2 3 4
Map<String, Object> map = new HashMap<String, Object>(); map.put("username","小明"); map.put("pwd","123456"); User user = mapper.selectUserByNP2(map);
总结:如果参数过多,可以考虑直接使用Map实现,如果参数比较少,直接传递参数即可。
分页
limit实现分页
修改Mapper文件。
1 2 3
<selectid="selectUser"parameterType="map"resultType="user"> select * from user limit #{offset},#{pageSize} </select>
for (User user: users){ System.out.println(user); } session.close(); }
insert
实例
给数据库增加一个用户
在UserMapper接口中添加对应的方法。
1 2
// 添加一个用户。 intaddUser(User user);
在UserMapper.xml中添加insert语句。
1 2 3
<insertid="addUser"parameterType="com.example.entity.User"> insert into user (id,name,pwd) values (#{id},#{name},#{pwd}) </insert>
测试。
1 2 3 4 5 6 7 8 9 10
@Test publicvoidtestAddUser(){ SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = new User(5,"王五","zxcvbn"); int i = mapper.addUser(user); System.out.println(i); session.commit(); // 提交事务,不写的话不会提交到数据库。 session.close(); }
注意:增,删,改操作需要提交事务。
update
实例
修改用户的信息
编写接口方法。
1 2
// 修改一个用户。 intupdateUser(User user);
编写对应的配置文件SQL
1 2 3
<updateid="updateUser"parameterType="com.example.entity.User"> update user set name=#{name},pwd=#{pwd} where id = #{id} </update>
测试。
1 2 3 4 5 6 7 8 9 10 11
@Test publicvoidtestUpdateUser(){ SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUserById(1); user.setPwd("asdfgh"); int i = mapper.updateUser(user); System.out.println(i); session.commit(); // 提交事务,不写的话不会提交到数据库。 session.close(); }
delete
实例
根据id删除一个用户
编写接口方法。
1 2
// 根据id删除用户。 intdeleteUser(int id);
编写对应的配置文件SQL
1 2 3
<deleteid="deleteUser"parameterType="int"> delete from user where id = #{id} </delete>
测试。
1 2 3 4 5 6 7 8 9
@Test publicvoidtestDeleteUser(){ SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); int i = mapper.deleteUser(5); System.out.println(i); session.commit(); // 提交事务,不写的话不会提交到数据库。 session.close(); }