mybatis使用注解开发
- 面向接口编程
在之前我们是通过面向对象编程,但是在真正开发的时候我们会选择面向接口编程.
根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好
-
在面向对象的系统中,系统的各种功能是通过不同对象之间的协作完成的.在这种情况下各个对象的内部是如何实现的,对系统的设计人员就不那么重要了.
-
接口的理解:应该是定义与实现的分离.
-
接口本身反应了系统设计人员对系统的抽象理解.
-
接口应该有两类:
- 第一类是一个个体抽象,它可对应为一个抽象体.
- 第二类是对一个个体某一方面的抽象,集形成一个抽象面.
- 一个体可以有多个抽象面,抽象体和抽象面是有区别的.
利用注解开发
mybatis
最初配置信息是基于xml
,映射语句(sql
)也是定义在xml
中的,在新的3版本中基于注解配置.
sql的主要类型分成:
@select
@update
@insert
@delete
备注:利用注解开发就不需要mapper.xml
映射文件了.
在mybatis核心配置文件中注入:
<!-
-使用class绑定接口-->
<mappers>
<mapper class="com.kuang.mapper.UserMapper"/>
</mappers>
测试:
@Test
public void testGetAllUser() {
SqlSession session = MybatisUtils.getSession();
//本质上利用了jvm的动态代理机制
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> users = mapper.getAllUser();
for (User user : users){
System.out.println(user);
}
session.close();
}
关于@Param
@Param
注解用于给方法参数起一个名字。以下是总结的使用原则:
在方法只接受一个参数的情况下,可以不使用@Param
。
在方法接受多个参数的情况下,建议一定要使用@Param
注解给参数命名。
如果参数是JavaBean
, 则不能使用@Param
。
不使用@Param
注解时,参数只能有一个,并且是Javabean
。