Spring和Mybatis的整合

1.配置spring的xml文件

1.注入dataSource 数据源

这一步原本是在mybatis-config.xml里的。

<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/mybatis?useSSL=false&userUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="对应的密码"/>
</bean>

2.注入SqlSessionFactory

<!-- sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource" />
<!-- 绑定mybatis 配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:com/harris/Mapper/*.xml"/>
</bean>

3.注入SqlSessionTemplate

<!--SqlSessionTemplate 就是我们所说的sqlSession -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>

4.给对应的实现类注入​​sqlSessionTemplate​​属性

<bean id="usermapper" class="com.harris.Mapper.UserMapperImpl">
<property name="sqlSessionTemplate" ref="sqlSession"/>
</bean>

Spring和Mybatis的整合_xml

与之前的Mybatis不一样,这里需要多创建一个UserMapper实现类。

package com.harris.Mapper;

import com.harris.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;

import java.util.List;

public class UserMapperImpl implements UserMapper{

private SqlSessionTemplate sqlSessionTemplate;


//设置set方法
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}
//重写实现方法 利用sqlSessionTemplate 的getMapper
@Override
public List<User> selectUser() {
UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
return mapper.selectUser();
}
}

测试

import com.harris.Mapper.UserMapper;
import com.harris.pojo.User;
import com.harris.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class MyTest {
@Test
public void Test1(){
ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
UserMapper usermapper = context.getBean("usermapper",UserMapper.class);
for (User user : usermapper.selectUser()) {
System.out.println(user);
}
}
}

运行结果