使用注解开发
1 2 3
| @Select ("select * from mybatis.saxon") List<User> getUser();
|
这是我们的映射就要使用类名来注册
1 2 3
| <mappers> <mapper class="com.saxon.Dao.UserMapper"/> </mappers>
|
测试
1 2 3 4 5 6 7 8 9 10
| @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.查询
1 2 3 4 5 6 7 8 9 10 11 12
| @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.添加
1 2 3 4 5 6 7 8 9 10 11 12
| @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.更新
1 2 3 4 5 6 7 8 9 10 11 12
| @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.删除
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @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()中的;
1 2
| @Select ("select * from mybatis.saxon where id=#{uid}") User select (@Param ("uid") int id);
|
mybatis的实现流程
