Mybatis(注解CRUD)

可以在工具类创建的时候实现自动提交事务!

  public  static SqlSession getSqlSession(){
      return sqlSessionFactory.openSession(true);
    }

但是最好不要用

编写接口

public interface UserMapper {
    @Select("select * from user")
    List<User> getUsers();
    //方法存在多个参数,所有的参数必须加上@Param("id")注解  源码只能放在上面
    @Select("select * from user where id =#{id}")
    User getUserByID(@Param("id") int id);
    @Insert("insert into user(id,name,pwd)values(#{id},#{name},#{pwd})")
    int addUser(User user);
    @Update("update user set name=#{name},pwd=#{pwd} where id=#{id}"    )
    int updataUser(User user);
    @Delete("delete from  user where id=#{uid}")
    int deleteUser(@Param("uid") int id);
}

配置文件(映射器)

 <mappers>
           <mapper class="dao.UserMapper"/>
            <!--<mapper resource="com/dao/*Mapper.xml"/>-->
       </mappers>

测试

    @Test
    public void test(){
       SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = mapper.getUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }
    @Test
    public  void mytest(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User userByID = mapper.getUserByID(1);
        System.out.println(userByID);
    }
    @Test
    public void addtest(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.addUser(new User(1,"小三","12346"));
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void updatatest(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updataUser(new User(11,"老王","456"));
        sqlSession.commit();
    }
    @Test
    public void deletetest(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.deleteUser(1);
        sqlSession.commit();
    }

关于Param()注解

  • 基本类型的参数或者String类型,需要加上
  • 引用类型不需要加
  • ** 如果只有一个基本类型,可以忽略,但是最好加上。**
  • 我们在SQL中引用的就是@Param("")中设定的属性名。

##{}和${}的区别:

posted @ 2021-11-24 10:01  不会笑的孩子  阅读(40)  评论(0)    收藏  举报