Mybatis使用注解开发
1 面向接口编程
原因:
解耦、可扩展性、提高复用性
关于接口的理解
-
定义与实现的分离
-
两类接口
-
一个个体的抽象,abstract class
-
一个个体某个方面的抽象,interface
-
三个面向:
-
面向对象
-
面向过程
-
面向接口
2 使用注解开发
使用步骤:
1. 注解在接口上实现
@Select("select * from User")
List<User> getUsers();
2. 需要在核心配置文件中绑定接口
<mappers>
<mapper class="com.kuang.dao.UserMapper" />
</mappers>
3. 测试
本质:反射机制实现
底层:动态代理!
3 注解实现CRUD
1. 我们可以在工具类创建的时候实现自动提交事务
//参数表示自动提交事务
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}
2. 编写接口,添加注解
public interface UserMapper {
@Select("select * from User")
List<User> getUsers();
//多个参数情况下,必须加上@Param()注解
@Select("select * from user where id=#{id}")
User getUserById(@Param("id") int id);
@Insert("insert into user(id,name,pwd) values(#{id},#{name},#{password})")
int addUser(User user);
@Update("update user set name=#{name},pwd=#{password} where id=#{id}")
int updateUser(User user);
}
测试类
注意:我们必须要将接口注册绑定到我们的核心配置文件中
关于@Param()注解
-
基本类型的参数或者String类型,必须加上
-
引用类型不需要加
-
如果只有一个基本类型的话,可以不加。
-
在sql中引用的就是我们这里的注解中的属性
#{ } 和${ }相比:最好用#{ }