spring-mybatis


Spring-ORM

提供了spring和第三方的orm框架进行整合的功能

spring和mybatis进行整合

导入相关依赖

  1. 导入mybatis框架的jar

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    
  2. 由于mybatis和spring不是一个公司的,所以还需要导入一个适配包,并且这个适配包不是由spring维护的

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.6</version>
    </dependency>
    
  3. spring-orm

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${spring.version}</version>
    </dependency>
    
  4. mysql数据的驱动

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
    
  5. 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文件

建议单独写

  1. 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>
    
  2. 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>
    

文章作者: 码农耕地人
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 码农耕地人 !
  目录