简介
我们知道Spring的核心思想是IOC,他创建了一个容器帮我们管理我们的类,使得耦合性大大降低了,使用时可以直接从容器中把类取出。那么Mybatis的使用过程中也是需要创建一些类,我们把这些类交给Spring来管理就完成了Spring集成Mybatis的功能
整合Mybatis 步骤: 1. 导入相关 jar 包 1. junit2. mybatisjunit junit4.12
3. mysql-connector-javaorg.mybatis mybatis3.5.2
4. spring 相关mysql mysql-connector-java5.1.47
5. aspectJ AOP 织入器org.springframework spring-webmvc5.1.10.RELEASE org.springframework spring-jdbc5.1.10.RELEASE
6. mybatis-spring 整合包 【重点】org.aspectj aspectjweaver1.9.4
org.mybatis mybatis-spring2.0.2
按需导入即可,最重要的是第六个
MyBatis-Spring 学习 什么是 MyBatis-Spring ? MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 要和 Spring 一起使用 MyBatis ,需要在 Spring 应用上下文中定义至少两样东西:一个 sqlsessionfactory 和至少一个数据映射器类。 创建数据源
在 MyBatis-Spring 中,可使用
SqlSessionFactoryBean
来创建
SqlSessionFactory,
要配置 这个工厂 bean
,只需要把下面代码放在
Spring
的
XML
配置文件中:
测试:
public class test {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-mybatis.xml");
// 直接从spring中获取然后调用方法
IoUser iouser = (IoUser) applicationContext.getBean("ioUser");
System.out.println(iouser.findCount());
}
}
成功,mybatis已经成功集成到spring中了
spring-mybatis.xml 这个是固定的一个写法,在里面注册一些东西,然后在总的配置文件中import即可
SqlSessionDaoSupport
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
public User getUser(String userId) {
return getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
}
}
在这个类里面,通常更倾向于使用 MapperFactoryBean,因为它不需要额外的代码。但是,如果你需要在 DAO 中做其它非 MyBatis 的工作或需要一个非抽象的实现类,那么这个类就很有用了。
SqlSessionDaoSupport 需要通过属性设置一个 sqlSessionFactory 或 SqlSessionTemplate。如果两个属性都被设置了,那么 SqlSessionFactory 将被忽略。
假设类 UserMapperImpl 是 SqlSessionDaoSupport 的子类,可以编写如下的 Spring 配置来执行设置:



