传统DAO方式的开发整合

  • 可以使用mybatis-spring包中提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现
  • SqlSessionTemplate: 是核心类 负责管理Mybatis的SqlSession,调用Mybatis的SQL方法
  • SqlSessionDaoSupport: 是一个抽象支持类,主要是作为Dao的基类来使用,可以通过SqlSessionDaoSupport类的getSqlSession()方法来获得所需的SqlSession.

mapper接口方式的开发整合

mapper代理开发的规范:

  • mapper接口的名称和对应mapper.xml映射的名称必须一致
  • mapper.xml的namespace与mapper接口的类路径相同
  • mapper接口中的方法名和mapper.xml中定义的每个执行语句的id相同
  • mapper接口中方法的输入和输出类型和mapper.xml定义的相同
基于MapperFactoryBean的开发整合

MapperFactoryBean是一个用于根据Mapper接口生成Mapper对象的类
该类常用参数如下:

  • mapperInterface: 用于指定接口
  • SqlSessionFactory: 用于指定SqlSessionFactory
  • SqlSessionTemplate: 用于指定SqlSessionTemplate. (如果和SqlSessionFactory同时设定,只会启动SqlSessionTemplate)
<!-- Mapper代理开发(基于MapperFactoryBean)       -->
<bean id=" "  class="org.mybatis.spring.mapper.MapperFactoryBean">
      <property name="mapperInterface" value="接口类路径" />
      <property  name="sqlSessionFactory"  ref=" "/>
</bean>
基于MapperScannerConfigurer的开发整合

自动扫描 (最常用)
MapperScannerConfigurer类的属性:

  • basePackage: 指定映射接口文件所在的包路径(若有多个路径,使用分号或逗号作为分隔符)
  • annotationClass: 指定要扫描的注解名称 (一般不用)
  • sqlSessionFactoryBeanName:指定Spring中定义的SqlSessionFactory的Bean名称
  • sqlSessionTemplateBeanName:指定Spring中定义的SqlSessionTemplate的Bean名称
<!-- 基于MapperScannerConfigurer -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property  name="basePackage" value="包路径" />
</bean>

整合步骤

  1. 导入相关jar包
<dependencies>

       <!-- Spring核心 -->
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
  
        <!-- MyBatis核心 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        
         <!-- MySQL JDBC驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
        
        <!-- JUnit单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    
        <!-- Druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        
        <!-- Spring整合MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        
        <!-- Spring整合ORM框架 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
        
        <!-- slf4j日志框架(Spring使用) -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        
		<!-- PageHelper分页插件 -->
		<dependency>
		       <groupId>com.github.pagehelper</groupId>
		       <artifactId>pagehelper</artifactId>
		       <version>4.2.1</version>
		</dependency>
        
 </dependencies>  

  1. 编写配置文件
    spring.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 http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 加载数据库连接信息的属性文件 -->
<context:property-placeholder location="classpath:jdbc-config.properties"/>
<!-- 配置Druid数据源的Bean -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

	<property name="driverClassName" value="${jdbc.driverClassName}"/>
  	<property name="url" value="${jdbc.url}"/>
	<property name="username" value="${jdbc.username}"/>
	<property name="password" value="${jdbc.password}"/>
  
</bean>
    
<!-- 配置SessionFactory的Bean  并注入dataSource-->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

	<!-- 注入数据源 -->
	<property name="dataSource" ref="dataSource"/>
	
	<!-- 指定MyBatis配置文件的位置 -->
	<property name="configLocation" value="classpath:mybatis.xml"/>
 
	<!-- 给实体类起别名 -->
	<property name="typeAliasesPackage" value="com.neuedu.entity"/> 

	<!-- 配置MyBatis的插件 -->
	<property name="plugins">
	   <array>
	        <!-- PageHelper分页插件 -->
	        <bean id="pageHelper" class="com.github.pagehelper.PageHelper">
	             <property name="properties">
	                 <props>
	                      <prop key="dialect">mysql</prop>
	                 </props>
	              </property>
	        </bean>
	   </array>   
	</property>

</bean>
<!-- 配置mapper接口的扫描器,将Mapper接口的实现类自动注入到IoC容器中
     实现类Bean的名称默认为接口类名的首字母小写 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      
    <!-- basePackage属性指定自动扫描mapper接口所在的包 -->
	<property name="basePackage" value="com.neuedu.mapper"/>
	
</bean>
</beans>

mybatis/configuration.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>
    <!-- 配置全局属性 -->
    <settings>
        <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
        <setting name="useGeneratedKeys" value="true" />
        <!-- 使用列标签替换列名 默认:true -->
        <setting name="useColumnLabel" value="true" />
        <!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
        <setting name="mapUnderscoreToCamelCase" value="true" />
        <!-- 打印查询语句 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
</configuration>
Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐