Spring整合mybatis
思路分析
Mybatis程序核心对象分析
上面图片是mybatis的代码,上述有三个对象,分别是sqlSessionFactory,sqlSession,accountDao这三个对象,那么哪个是核心对象,哪些类适合交给Spring来管理,因为spring默认是单例的,所有他管理的核心对象最好是无状态的,单例的,对于sqlSessionFactory来说它只创建一次,而sqlSession每次用的时候都要获取,用完还要关闭,而accountDao更不用说了,它本来就是由sqlSession创建的。(就像是在没学框架之前写那个mybatis工具类时只需在工具类中创建一次sqlSessionFactory对象,之后都是由工具类创建sqlSession对象)所以核心对象就是sqlSessionFactory对象
整合Mybatis
- 使用SqlSessionFactoryBean封装SqlSessionFactory需要的环境信息
- 使用MapperScannerConfigurer加载Dao接口,创建代理对象保存到IOC容器中
代码实现
前置工作
创建与数据库表对应的实体类,还有dao接口并写对应的方法以及对应的sql语句
public class Student {
private Integer id;
private String name;
public Student() {
}
public Student(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
public interface StudentDao {
@Select("select * from student where id = #{id}")
Student findById(Integer id