Spring整合mybatis
导入jar包
1 导入mybatis相关的jar包
- mybatis-3.5.5.jar
- asm-7.1.jar
- cglib-3.3.0.jar
- commons-logging-1.2.jar
- javassist-3.27.0-GA.jar
- log4j-1.2.17.jar
- log4j-api-2.13.3.jar
- log4j-core-2.13.3.jar
- ognl-3.2.14.jar
- slf4j-api-1.7.30.jar
- slf4j-log4j12-1.7.30.jar
2 导入mybatis整合spring相关的jar包(重要) - mybatis-spring-2.0.4.jar
3 spring相关的jar包 - spring-beans-5.2.7.RELEASE.jar
- spring-context-5.2.7.RELEASE.jar
- spring-core-5.2.7.RELEASE.jar
- spring-expression-5.2.7.RELEASE.jar
- spring-jdbc-5.2.7.RELEASE.jar
- spring-tx-5.2.7.RELEASE.jar
- spring-aop-5.2.7.RELEASE.jar
4 数据库驱动jar包 - mysql-connector-java-5.1.48.jar
创建一个普通的java项目
创建spring的配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" >
</beans>
注意:这里需要添加context命名空间,用来解析下面的properties文件
配置解析 properties 文件
添加 db.properties 文件
jdbc.driver=com.mysql
jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名字
jdbc.username=连接数据库用户名
jdbc.password=连接数据库密码
在applicationContext.xml文件里面添加以下内容
配置数据源-----mysql
<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
</bean>
配置 SqlSessionFactoryBean
<!--配置 SqlSessionFactoryBean-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.bjsxt.pojo"/>
<property name="mapperLocations" value="com/bjsxt/mapper/*.xml"/>
</bean>
SqlSessionFactoryBean 是初始化 Mybatis 框架的 Bean 对象。它是生产 SqlSessionFactory 的一种工厂 Bean。在 Spring 整合 Mybatis 中,我们可以不需要 Mybatis 的配置文件,在该 Bean 对象中可以完成对 Mybatis 框架的配置。
配置 SqlSessionTemplate
<!--配置 SqlSessionTemplate-->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"/> </bean>
配置业务层依赖
接口实现类
public class UsersServiceImpl implements UsersService { private SqlSessionTemplate sqlSessionTemplate;
public SqlSessionTemplate getSqlSessionTemplate() {
return sqlSessionTemplate;
}
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
{
this.sqlSessionTemplate = sqlSessionTemplate;
}
}
配置业务层
<!--配置业务层-->
<bean id="usersService" class="com.bjsxt.service.impl.UsersServiceImpl">
<property name="sqlSessionTemplate" ref="sqlSessionTemplate"/>
</bean>
总结
到这里。我们就可以在业务层使用SqlSessionTemplate对象去获取mapper对象。然后进行相应的业务操作。这个写法比较麻烦,后面我会以注解的方式来整合。
// UsersMapper是一个和xml映射的接口
UsersMapper usersMapper =this.sqlSessionTemplate.getMapper(UsersMapper.class);
usersMapper.insertSelective(users);