Mybatis框架学习小记(三)

it2023-06-16  72

CRUD编写并测试

1. namespace

namespace中的包要和Dao/mapper接口的包名一致

2.select

选择,查询语句

id:就是对应的namespace中的方法名:

resultType:Sql语句执行的返回值!

parameterType:参数类型

步骤

编写接口

 public interface UserMapper {      //查阅全部用户      List<User> getUserList();      //根据id查询用户      User getUserById(int id);  ​      //insert一个用户      int addUser(User user);  ​      //修改用户      int updateUser(User user);  ​      //删除一个用户      int deleteUser(int id);  }

 

编写对应的mapper中的SQL语句

 <mapper namespace="com.dao.UserMapper">      <!--select语句-->      <select id ="getUserList" resultType="com.pojo.User">          select * from mybatis.user      </select>      <select id="getUserById" parameterType="int" resultType="com.pojo.User">          select * from mybatis.user where id = #{id}      </select>      <insert id="addUser" parameterType="com.pojo.User">          insert into mybatis.user(id, name, password) values(#{id}, #{name}, #{password});      </insert>  ​      <update id="updateUser" parameterType="com.pojo.User">          update mybatis.user set name = #{name}, password = #{password} where id = #{id};      </update>  ​      <delete id="deleteUser" parameterType="int">          delete from mybatis.user where id = #{id};      </delete>  </mapper>

 

测试

 public class UserDaoTest {      @Test      public void test(){          //1.获取sqlSession连接对象          SqlSession sqlSession = MybatisUtils.getSqlSession();          //执行MySQL          UserMapper userDao = sqlSession.getMapper(UserMapper.class);          List<User> userList = userDao.getUserList();          for(User user: userList){              System.out.println(user);         }  ​          sqlSession.close();  ​     }  ​      @Test      public void getUserById(){         SqlSession sqlSession = MybatisUtils.getSqlSession();         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);         User user = userMapper.getUserById(2);         System.out.println(user);         sqlSession.close();     }  ​      //增删改操作      @Test      public void addUser(){          SqlSession sqlSession = MybatisUtils.getSqlSession();          UserMapper userMapper = sqlSession.getMapper(UserMapper.class);          int rs = userMapper.addUser(new User(4,"HeyMan", "123098"));          if(rs > 0){              System.out.println("插入数据成功!");         }          //提交事务          sqlSession.commit();          sqlSession.close();     }  ​      @Test      public void updateUser(){          SqlSession sqlSession = MybatisUtils.getSqlSession();          UserMapper userMapper = sqlSession.getMapper(UserMapper.class);          userMapper.updateUser(new User(4, "Liniy", "123409"));  ​          //修改后一定要提交事务          sqlSession.commit();          sqlSession.close();     }  ​      @Test      public void deleteUser(){          SqlSession sqlSession = MybatisUtils.getSqlSession();          UserMapper userMapper = sqlSession.getMapper(UserMapper.class);          userMapper.deleteUser(4);  ​          sqlSession.commit();          sqlSession.close();     }  }

 

3.Insert

   <insert id="addUser" parameterType="com.pojo.User">         insert into mybatis.user(id, name, password) values(#{id}, #{name}, #{password});      </insert>

 

4.Update

 <update id="updateUser" parameterType="com.pojo.User">     update mybatis.user set name = #{name}, password = #{password} where id = #{id};  </update>

 

5.Delete

 <delete id="deleteUser" parameterType="int">     delete from mybatis.user where id = #{id};  </delete>

注意点

增删该需要提交事务,不然无法成功

6.分析错误

标签匹配问题

resource绑定mapper需要使用路径

程序配置文件必须符合规范

NullPointerException,没有注册到资源

输出的xml文件中存在中文乱码

maven资源没有导出

最新回复(0)