MyBatis(十三):使用注解开发
一、什么是使用注解开发
使用注解开发就是无需再配置Mapper.xml文件,直接在接口中利用注解实现SQL语句。
二、为什么要使用注解开发
正如官方文档所说:
使用注解来映射简单语句会使代码显得更加简洁。
但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。
三、如何使用注解进行开发
1.删掉原来的UserMapper.xml
2.修改UserMapper接口
package com.jms.dao; import com.jms.pojo.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper { @Select("select * from user") List<User> getUserList(); }
在方法上面的那就是注解。
3.修改核心配置文件mybatis-config.xml中的mapper映射
<mappers> <mapper class="com.jms.dao.UserMapper"/> </mappers>
原来是映射xml文件,现在我们修改为映射接口。
4.junit测试
package com.jms.dao; import com.jms.pojo.User; import com.jms.utils.MyBatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserMapperTest { @Test public void test() { SqlSession sqlSession = MyBatisUtil.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> userList = userMapper.getUserList(); for (User user : userList) { System.out.println(user); }
sqlSession.close(); } }
测试结果如下:
测试结果没有问题。
那么问题就来了,我们究竟应该在xml文件中去映射呢还是用注解进行映射呢。上面其实已经说得很明白了,简单的语句用注解映射更加简洁,而复杂的语句则应该用xml文件进行映射。正如官方文档的一句话:选择何种方式来配置映射,以及认为是否应该要统一映射语句定义的形式,完全取决于你和你的团队。 换句话说,永远不要拘泥于一种方式,你可以很轻松的在基于注解和 XML 的语句映射方式间自由移植和切换。
技术没有高低好坏之分,有区别的是使用技术的人。
(本文仅作个人学习记录用,如有纰漏敬请指正)