8.使用注解开发
8.1面向接口编程
在公司中,我们都是面向接口编程的,而不是面向对象编程。这是为了解耦,可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好。
8.2注解开发
mybatis最初配置信息时基于xml,映射与激怒越是定义在xml中的,而到了mybatis3中提供了基于注解的配置。但是java注解的表达力和灵活性十分有限。mybatis映射无法使用注解来构建
注解:
@select()
@update()
@insert()
@delete()
使用这些注解我们就不用开发接口实现xml了。
如果函数中由多个参数那么每个参数钱都要加@param(参数名)
在接口上实现
//查询全部用户
@Select("select id,name,pwd password from user")
public List<User> getAllUser();
需要核心配置文件中绑定接口
<!--使用class绑定接口-->
<mappers>
<mapper class="com.arivher.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();
}
本质:反射机制实现
动态代理
mybatis详细的执行流程