使用注解开发Mybatis

六、使用注解开发

    //使用注解、
    @Select ("select * from mybatis.saxon")
    List<User> getUser();

这是我们的映射就要使用类名来注册

    <mappers>
      <mapper class="com.saxon.Dao.UserMapper"/>
    </mappers>

测试

 @Test
    public void testAn(){
        SqlSession sqlSession = MybatisUnit.getSqlSession ();
        UserMapper mapper = sqlSession.getMapper (UserMapper.class);
        List<User> userList = mapper.getUser ();
        for (User user : userList) {
            System.out.println (user);
        }
        sqlSession.close ();
    }

这个办法只可以处理简单的sql语句,处理复杂的sql语句,会使得程序变得混乱不堪;一些复杂的操作我们还是推荐使用我们的xml配置文件来完成;当然我们也可以把二者进行一个结合,但是我们注册的时候,我们的接口名和xml名字要一样;

二.CRUD

1.查询
 //使用注解查询语句
    @Select ("select * from mybatis.saxon where id=#{id}")
    User select(int id);
    
  @Test
    public void Test(){
        SqlSession sqlSession = MybatisUnit.getSqlSession ();
        UserMapper mapper = sqlSession.getMapper (UserMapper.class);
        User select = mapper.select (1);
        System.out.println (select);
        sqlSession.close ();
    }
2.添加
 //使用注解添加用户
    @Insert ("insert into mybatis.saxon(id,user,pwd) values(#{id},#{user},#{password})")
    void insert(User user);
    
    
 public void test(){
        SqlSession sqlSession = MybatisUnit.getSqlSession ();
        UserMapper mapper = sqlSession.getMapper (UserMapper.class);
        mapper.insert (new User (2,"saxon","1234567"));
        sqlSession.commit ();
        sqlSession.close ();
    }
3.更新
    @Update ("update mybatis.saxon set user=#{user} , pwd=#{pwd}  where id=#{id}")
    void update (User user);
    
    
     @org.junit.Test
    public void test(){
        SqlSession sqlSession = MybatisUnit.getSqlSession ();
        UserMapper mapper = sqlSession.getMapper (UserMapper.class);
        mapper.update (new User (2,"hello","12345 67"));
        sqlSession.commit ();
        sqlSession.close ();
    }
4.删除
//使用注解删除用户
    @Delete ("delete from mybatis.saxon where id=#{id}")
    void delete(@Param ("id") int id);
   
   
   
   @org.junit.Test
    public void test(){
        SqlSession sqlSession = MybatisUnit.getSqlSession ();
        UserMapper mapper = sqlSession.getMapper (UserMapper.class);
        mapper.delete (2);
        sqlSession.commit ();
        sqlSession.close ();
    }

在我们每一次的提交数据的时候,都要设置自动提交,我们可以在sqlsession建立的时候就可以把自动提交设置为true;这样可以每次不必要的去设置我们的数据提交,但是带来的隐患就是我们的数据无论对错都会被提交;

每写一个查询的功能,就要注册一个mapper,在mybatis-config.xml中配置

5.关于@Param

在后面的使用中,我们的@Param中的东西才是我们取值的重点,才会被取到,如果我们的对象是引用数值类型就不用写;基础类型要写,如果只有一个基础类型的话可以不用写,我们在SQL语句中引用的就是@param()中的;

@Select ("select * from mybatis.saxon where id=#{uid}")
User select (@Param ("uid") int id);

自学总结
学习地址:狂神说Java

posted @ 2020-08-15 15:27  SaxonMo  阅读(69)  评论(0编辑  收藏  举报