一、spring整合mybatis普通版(理论):
1 Spring的两大核心思想
1、IOC:控制反转,Spring容器可以完成对象的创建,属性的注入,对象管理等工作
2、Aop:面向切面,在不修改代码业务逻辑的情况下,实现原有的业务的增强
2 Spring可以对mybatis提供哪些支持?
1、Spring-Ioc可以为mybatis完成DataSource、SqlSessionFactory、SqlSession以及Dao对象的创建
2、Spring-Aop可以提供事物管理切面类完成对mybatis数据库中的事务管理。
3 将 MyBatis 与 Spring 进行整合,主要解决什么问题?
将 MyBatis 与 Spring 进行整合,主要解决的问题就是将 SqlSessionFactory 对象交由 Spring 来管理。所以,该整合,只需要将 SqlSessionFactory 的对象生成器 SqlSessionFactoryBean 注册在 Spring 容器中,再将其注入给 Dao 的实现类即可完成整合。
4 实现 Spring 与 MyBatis 的整合常用的方式:
扫描的 Mapper 动态代理 Spring 像插线板一样,mybatis 框架是插头,可以容易的组合到一起。插线板 spring 插上 mybatis,两个框架就是一个整体。 使用mybatis,需要创建mybatis框架中的某些对象,使用这些对象,就可以使用mybatis提供的功能了。
5 对于mybatis执行sql语句,需要用到的对象有:
SqlSessionFactory对象,只有创建了SqlSessionFactory对象,才能调用openSession()方法得到SqlSession对象。
dao接口的代理对象,例如StudentDao接口,需要的代理对象为:SqlSeesion.getMapper(StudentDao.class)。
数据源DataSource对象,使用一个更强大、功能更多的连接池对象代替mybatis自己的PooledDataSource
二、spring整合mybatis普通版(实操):
1 在实际的项目开发中,我们需要将MyBatis和Spring进行整合,通过Spring 的依赖注入以减少代码的耦合。
第一步:创建数据库表
在Navicat下执行如下sql命令创建表User.
drop table if exists t_user;
create table t_user (
uid int(11) primary key not null AUTO_INCREMENT,
username varchar(20),
birthday varchar(20),
sex varchar(5),
address varchar(50)
);
insert into t_user values (1, '张三', '2022-05-03', '男', '北京');
insert into t_user values (2, '李四', '2022-05-19', '男', '广州');
insert into t_user values (3, '小红', '2022-05-19', '女', '郑州');
insert into t_user values (4, '小美', '2022-05-20', '女', '郑州');
select * from t_user;
第二步:创建bean
创建一个model包并在其下创建一个User.java文件。
package com.su.bean;
public class User {
private Integer uid;
private String username;
private String birthday;
private String sex;
private String address;
第三步:创建DAO接口
创建一个包dao,并在其下创建一个UserDao.java文件作为DAO接口。
package com.su.dao;
import com.su.bean.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserDao {
@Select("select * from t_user")