1.根据参数查询用户
UserMapper接口里面新添getUserById方法
public interface UserMapper { //获取全部用户信息 List<User> getUserList(); //根据用户ID获取指定用户信息 User getUserById(int id); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.lei.dao.UserMapper"> <select id="getUserList" resultType="com.lei.pojo.User"> select * from mybatis.user </select> <select id="getUserById" resultType="com.lei.pojo.User" parameterType="int"> select * from mybatis.user where id=#{id} </select> </mapper>
//指定id获取用户测试 @Test public void test() { SqlSession sqlSession=MybatisUtils.getSqlSession();//获取SqlSession对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.getUserById(1); System.out.println(user);; sqlSession.close(); }
最重要的是这一个mapper映射
其中直接输出对象
System.out.println(user);;
Java中直接输出一个类的对象的时候,会调用这个类的toString()方法,自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样的:
getClass().getName() + "@" + Integer.toHexString(hashCode())。
后面跟的是这个类的哈希码值,如果希望这个类打印出你希望的格式,你就要覆盖toString方法
toString方法返回的是一个String类型的字符串。
2.插入一个新用户
在UserMapper接口里添加addUser方法,
//插入一个新用户 void addUser(User user);
在UserMapper.xml里编写对应的映射 sql语句可以直接获得传来对象的变量id name pwd
<insert id="addUser" parameterType="com.lei.pojo.User"> insert into mybatis.user values (#{id},#{name},#{pwd}) </insert>
在测试类中进行测试
注意提交事务,不然无法完成更新
//插入一个新的用户 @Test public void test(){ SqlSession sqlSession=MybatisUtils.getSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); userMapper.addUser(new User(4,"cc","123445")); sqlSession.commit();//注意提交事务 sqlSession.close(); }
3.更新一个用户
还是刚才那三步
UserMapper
//更新用户数据 void updateUser(User user);
UserMapper.xml
<update id="updateUser" parameterType="com.lei.pojo.User"> update mybatis.user set name=#{name}, pwd=#{pwd} where id=#{id}; </update>
test方法
//更新一个用户的数据 @Test public void test() { SqlSession sqlSession=MybatisUtils.getSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); userMapper.updateUser(new User(4,"cgl","123123")); sqlSession.commit(); sqlSession.close(); }
4.删除一个用户
//删除一个用户 void deleteUser(int id);
<delete id="deleteUser" parameterType="int"> delete from mybatis.user where id=#{id} </delete>
//删除一个用户 @Test public void test(){ SqlSession sqlSession=MybatisUtils.getSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); userMapper.deleteUser(4); sqlSession.commit(); sqlSession.close(); }
5.使用一个map进行添加用户
//用map插入一个新用户 void addUserMap(Map<String,Object> map);
<insert id="addUserMap" parameterType="map"> insert into user values (#{mapId},#{mapName},#{mapPwd}) </insert>
//以map的形式添加一个用户 @Test public void testaddUserMap(){ SqlSession sqlSession=MybatisUtils.getSqlSession(); Map<String,Object> map=new HashMap<>(); map.put("mapId",3); map.put("mapName","ccmap"); map.put("mapPwd","123123"); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); userMapper.addUserMap(map); sqlSession.commit(); sqlSession.close(); }