添加依赖
<!--mybatis整合包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
创建相应的spring配置文件
使用mybatis-spring需要两个东西,DataSource和sqlSessionFactory(常用的SQL语句操作集)
- 添加DataSource
<!--配置数据源-->
<bean id="Datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db1?characterEncoding=utf8&useSSL=false& serverTimezone=UTC&rewriteBatchedStatements=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
- 添加sqlsessionFactory
<!--配置sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="Datasource" />
<!--绑定mybatis配置文件-->
<property name="configLocation" value="classpath:mybatis-conf.xml"/>
<property name="mapperLocations" value="classpath:com/mapper/*.xml"/>
</bean>
- 创建sqlsessionTemplate
<bean id="sqlsession" class="org.mybatis.spring.SqlSessionTemplate">
<!--只能通过构造函数方法注入参数,没有set方法-->
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
- 创建接口以及实现类(实现类中必须加入SqlSessionTemplate的set方法,因为SqlSessionTemplate中没有set方法,只有构造函数。)
接口:
package com.mapper;
import com.student.user;
import java.util.List;
public interface mapper {
public List<user> getUser();
}
实现类:
package com.mapper;
import com.student.user;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
public class usermapperImpl implements mapper{
private SqlSessionTemplate sessionTemplate;
public void setSessionTemplate(SqlSessionTemplate sessionTemplate) {
this.sessionTemplate = sessionTemplate;
}
@Override
public List<user> getUser() {
mapper mapper = sessionTemplate.getMapper(mapper.class);
return mapper.getUser();
}
}
- 将对应接口注入到spring文件中
<bean id="usermapperImpl" class="com.mapper.usermapperImpl">
<property name="sessionTemplate" ref="sqlsession"/>
</bean>
- 编写application.xml文件
导入spring.xml配置文件,这样每次修改spring配置文件不需要更改测试代码,增大了代码的之间的耦合度。
<import resource="mybatis-spring.xml"/>
- 编写测试代码
@Test
public void test(){
ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("application.xml");
mapper usermapperImpl = classPathXmlApplicationContext.getBean("usermapperImpl", mapper.class);
for (user user : usermapperImpl.getUser()) {
System.out.println(user);
}