使用注解开发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
我不是想感动自己,就是想看看自己可以坚持多久,距离你还有多远