整合Mybatis
mybatis-Spring官方文档
http://mybatis.org/spring/zh/sqlsession.html#SqlSessionTemplate
总结:整合MyBaits就是将我们原来MyBatis的配置文件整合到Spring的配置文件中去。
在MyBatis中,测试的时候加载配置文件,创建一个工厂模式,获取到它的sqlSession。这些都会被Spring的一些配置文件搞定。
将mybatis的对象由spring以bean的方式管理
形成了一一对应关系,方便在service层直接注入使用。
步骤:
1:导入相关的jar包:
Junit
myBatis;
mysql数据库
Spring相关的
Aop织入
myBatis-Spring【new】
2:编写配置文件;
3:测试
回忆MyBatis
1:编写实体类
@Data
public class User {
private int id;
private String name;
private String pwd;
}
2: 编写MyBatis的核心配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置-->
<configuration>
<!--别名-->
<typeAliases>
<package name="com.kuang.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--每一个Mapper.xml文件都需要在MyBatis核心配置文件中注册-->
<mappers>
<mapper resource="com/kuang/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
3:编写接口
public interface UserMapper {
List<User> selectUser();
}
4:编写Mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--configuration核心配置-->
<mapper namespace="com.kuang.mapper.UserMapper">
<select id="selectUser" resultType="User">
select * from mybatis.user
</select>
</mapper>
5: 测试
@Test
public void selectUser() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(true);//开启自动提交事务管理
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.selectUser();
for (User user : userList) {
System.out.println(user);
}
}
Spring整合MyBatis
Spring–dao.xml
1:编写数据源配置
<!--DataSource 使用Spring的数据源替换MyBatis的配置 c3p0 dbcp-->
<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=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</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/kuang/mapper/*.xml"/>
</bean>
3: sqlSessionTemplate
<!--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/kuang/mapper/*.xml"/>
</bean>
4: 需要给接口加实现类
public class UserMapperImpl implements UserMapper{
//我们所有的操作,在原来都是用SqlSession 来执行,现在都用SqlSessionTemplate来执行
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public List<User> selectUser() {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.selectUser();
}
}
5: 将自己写的实现类,注入到Spring中
然后注册到Bean当中;
<bean id="userMapper" class="com.kuang.mapper.UserMapperImpl">
<property name="sqlSession" ref="sqlSession"/>
</bean>
6: 测试使用即可;OK
官方文档还编写了另外一种实现方式:
1:实现类:继承SqlSessionDaoSupport
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
@Override
public List<User> selectUser() {
return getSqlSession().getMapper(UserMapper.class).selectUser();
}
}
配置文件
<bean name="userMapper2" class="com.kuang.mapper.UserMapperImpl2">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
测试OK;
MyBatis则会那个和Spring原理分析
https://www.cnblogs.com/54chensongxia/p/11850709.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71880.html