Spring-ORM
提供了spring和第三方的orm框架进行整合的功能
spring和mybatis进行整合
导入相关依赖
导入mybatis框架的jar
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency>
由于mybatis和spring不是一个公司的,所以还需要导入一个适配包,并且这个适配包不是由spring维护的
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency>
spring-orm
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency>
mysql数据的驱动
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency>
dbcp连接池
<dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>
mybatis-config.xml
这个文件可以没有存在的必要 - 完全可以直接舍弃的
<?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> <!-- 设置别名--> <typeAliases> <package name="tech.aistar.all.model"/> </typeAliases> </configuration>
配置外部的属性文件
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/j03s?useSSL=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
username=root
password=root
# 系统初始化的时候,连接池中的可用的连接的初始的个数
initialSize=3
# 连接池中最小空闲连接数,当连接数少于此值时,连接池会创建连接来补充到该值的数量
minIdle=5
# 连接池中最多可空闲maxIdle个连接 ,
# 这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,
# 而不被清除,随时处于待命状态。设 0 为没有限制。
maxIdle=15
# 连接池支持的最大连接数,
maxActive=15
# 连接池中连接用完时,新的请求等待时间,毫秒
# 1. 当新的请求到达,并且连接池中的连接已经到达maxActive值,连接池是不会分配连接给这个用户的.
# 那么这个用户就会在等待队列中[等待有没有被使用的连接被释放出来 - 新的空闲连接]
# 如果超过maxWait -> 抛出一个已经超时的错误.
maxWait=5000
model
实体类,mapper接口,service接口
spring文件
建议单独写
spring-service.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="tech.aistar.all.service"></context:component-scan> </beans>
spring-dao.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!-- 导入外部的属性文件--> <context:property-placeholder location="classpath:dbConfig.properties"/> <!-- 设置数据源--> <bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> <property name="initialSize" value="${initialSize}"/> <property name="minIdle" value="${minIdle}"/> <property name="maxIdle" value="${maxIdle}"/> <property name="maxActive" value="${maxActive}"/> <property name="maxWait" value="${maxWait}"/> </bean> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="basicDataSource"/> <!-- 可以设置mybatis-config.xml文件中一些设置的.--> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/> </bean> <!-- mapper扫包 - 受spring容器管理--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="tech.aistar.all.mapper"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/> </bean> </beans>