好程序员Java学习路线分享mybatis之spring整合,Spring、springMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。引入依赖首先我们
好程序员Java学习路线分享mybatis之spring整合,Spring、springMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。
引入依赖
首先我们需要在Maven项目中添加依赖,Spring框架和MyBatis框架需要的依赖有:
Ø mybatis MyBatis
Ø mybatis-spring MyBatis的Spring兼容包,用于整合MyBatis
Ø spring-jdbc Spring的JDBC包,配置数据源时需要
Ø spring-test Spring单元测试
Ø spring-context Spring上下文,提供ioc和aop服务
Ø Junit 单元测试框架
Ø mysql-connector-java Mysql数据库驱动
Ø c3p0 连接池
添加配置文件
首先我们用properties文件配置JDBC的参数:
示例代码:jdbc.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost/java1903?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false
user=root
passWord=123456
接下来在Spring配置文件中整合MyBatis
<!--1 引入属性文件,在配置中占位使用 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!--2 配置C3P0数据源 -->
<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!--驱动类名 -->
<property name="driverClass" value="${driver}" />
<!-- url -->
<property name="jdbcUrl" value="${url}" />
<!-- 用户名 -->
<property name="user" value="${user}" />
<!-- 密码 -->
<property name="password" value="${password}" />
<!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 -->
<property name="acquireIncrement" value="5"></property>
<!-- 初始连接池大小 -->
<property name="initialPoolSize" value="10"></property>
<!-- 连接池中连接最小个数 -->
<property name="minPoolSize" value="5"></property>
<!-- 连接池中连接最大个数 -->
<property name="maxPoolSize" value="20"></property>
</bean>
<!--3 配置MyBatis会话工厂bean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="datasource"/>
<!-- 别名 -->
<property name="typeAliasesPackage" value="com.qianfeng.mybatis.entity"/>
<!-- sql映射文件路径 -->
<property name="mapperLocations" value="classpath:mappers
public interface UserDAO {
List<User> selectAll();
}
编写Mapper 映射文件
编写Mapper接口的映射,实现查询功能
代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"Http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--mapper是映射,namespace是设置对应的DAO接口-->
<mapper namespace="com.qianfeng.SSM.dao.UserDAO">
<!--配置数据库返回结果映射-->
<resultMap id="userMap" type="User">
<!--id用于配置主键,property是实体类的属性名,column是表中的字段名-->
<id property="id" column="u_id"></id>
<!--result配置主键外其他列-->
<result property="name" column="u_name"></result>
<result property="password" column="u_password"></result>
<result property="realname" column="u_realname"></result>
<result property="age" column="u_age"></result>
<result property="gender" column="u_gender"></result>
<result property="img" column="u_img"></result>
</resultMap>
<!--配置查询语句-->
<select id="selectAll" resultMap="userMap">
select * from tb_user
</select>
</mapper>
Spring整合JUnit进行单元测试
使用Spring整合JUnit,测试Mapper接口是否能用SpringIOC实现注入:
代码示例
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class TestDAO {
@Resource
UserDAO userDAO;
@Test
public void testUserDAO(){
List<User> users = userDAO.selectAll();
users.forEach((user)->System.out.println(user));
}
}
使用Spring整合MyBatis后,能够利用Spring强大的IOC机制,将Mapper接口的代理对象注入进来,从而避免了手动创建SqlSessionFactory和SqlSession对象的麻烦,同时Spring对SqlSession的访问方式进行了优化,解决了SQLSession的线程安全问题。
--结束END--
本文标题: 好程序员Java学习路线分享MyBatis之Spring整合
本文链接: https://www.lsjlt.com/news/230503.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0