spring学习16:Spring整合Mybatis
-
整合Mybatis:
-
步骤:
-
导入相关jar包:
-
junit
-
mybatis
-
mysql
-
spring相关的
-
aop织入
-
mybatis-spring【new】
-
-
编写配置文件:
-
测试
-
-
-
导入相关jar包:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
</dependencies>
-
回忆Mybatis:
-
编写实体类;
-
编写Mybatis核心配置文件;
-
编写接口;
-
编写Mapper.xml;
-
把Mapper.xml注册到核心配置文件中;
-
测试;
-
-
整合Mybaits方式1:
-
Mybatis-spring:
-
步骤:
-
编写数据源配置:spring-dao.xml
-
编写SqlSessionFactory配置:
<!--2,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/ljxdemo/dao/*.xml"/>
</bean> -
编写SqlSessionTemplate配置:
<!--3,SqlSessionTemplate就是我们使用的SqlSession-->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<!--只能通过构造器注入sqlSessionFactory,因为它没有set方法-->
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean> -
需要给接口加实现类【多了一步】:
public class UserMapperImpl implements UserMapper {
//过去,我们的所有操作都使用SqlSession来执行;
//现在,我们都是用SqlSessionTemplate;
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
public List<User> selectUser() {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.selectUser();
}
} -
将自己写的实现类,注册到Spring配置文件中
-
测试
-
-
-
整合Mybaits方式2:
-
简化操作:其实是简化了SqlSessionTemplate这个步骤;
-
操作步骤:同方式1,只是简化中间步骤
-
Spring配置文件:
<!--为什么要注入参数:是因为UserMapperImpl2的父类中需要属性参数-->
<bean id="userMapper2" class="com.ljxdemo.dao.UserMapperImpl2">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean> -
接口实现类:UserMapperImpl2 继承 SqlSessionDaoSupport【重点】
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
public List<User> selectUser() {
return getSqlSession().getMapper(UserMapper.class).selectUser();
}
} -
测试
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律