mybatis与spring3.1整合

2024-02-23 22:58
文章标签 整合 mybatis spring3.1

本文主要是介绍mybatis与spring3.1整合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://thoughtfly.iteye.com/blog/1485993


因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件。

 

需要的jar包

mybatis-3.0.6.jar

mybatis-spring-1.0.2.jar

 

要点:

1.在spring中配置mybatis工厂类

2.在dao层使用spring注入的的工具bean对数据进行操作

整合时,可以有四种方式来使用mybatis进行数据处理。

 

spring中必须的配置。

spring的配置文件中加入以下内容

 

Xml代码   收藏代码
  1. <!-- MyBatis配置 -->  
  2.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  3.         <property name="dataSource" ref="c3p0DataSource" />  
  4.         <property name="configLocation" value="/WEB-INF/config/db/MyBatisConfiguration.xml" />  
  5.         <property name="mapperLocations" value="/WEB-INF/config/db/*Mapper.xml" />  
  6.         <property name="typeAliasesPackage" value="${mybatis.alias.basepackage}" />  
  7.     </bean>  

 

1.SqlSessionFactoryBean (必需)

   就是中间件所需的处理类

 

2.dataSource  (必需)

   spring中数据源引用

 

3.configLocation  (可选)

   Mybatis自身的配置文件,一般用来声明别名

 

4.mapperLocation  (可选)

   mybatis的映射文件

 

5.typeAliasesPackage (可选)

   要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明

 

 

 

使用mybatis进行数据处理的四种方式(SqlSessionTemplate/SqlSessionDaoSupport/MapperFactoryBean/MapperScannerConfigurer)

不同方式的特点

  1. SqlSessionTemplate  这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制
  2. SqlSessionDaoSupport   这个只需要在实现类中继承特殊类就可以使用sqlsession
  3. MapperFactoryBean  这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类
  4. MapperScannerConfigurer  这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,无需写实现类
  • SqlSessionTemplate
  1. 配置文件加入新配
    Java代码   收藏代码
    1. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">  
    2.   <constructor-arg index="0" ref="sqlSessionFactory" />  
    3.   <constructor-arg index="1" value="BATCH" /><!--- 如果想要进行批量操作可加入这个属性 ->  
    4. </bean>  
     
  2. 注入sqlsession()
    Java代码   收藏代码
    1. @Reasource //使用spring3的注解注入  
    2. private SqlSession sqlSession;  
     
  3. 使用sqlsession来进行操作
    Java代码   收藏代码
    1. public User getUser(String userId) {  
    2.     return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);  
    3.   }  
  • SqlSessionDaoSupport(sqlSessionFactory会被spring自动装配,不需要手动注入)
  1. 继承SqlSessionDaoSupport类
    Java代码   收藏代码
    1. public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {  
    2.   
    3. }  
     
  2. 使用getSqlSession()方法取sqlSession来进行数据处理
    Java代码   收藏代码
    1. public User getUser(String userId) {  
    2.     return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);  
    3.   }  
     
  • MapperFactoryBean
  1. 写配置文件,引入每个DAO接口
    Xml代码   收藏代码
    1. <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">  
    2.   <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />  
    3.   <property name="sqlSessionFactory" ref="sqlSessionFactory" />  
    4. </bean>  
     
  2. 在业务层可直接注入dao的接口进行操作
  • MapperScannerConfigurer
  1. 写配置文件,配置包名将自动引入包中的所有接口
    Xml代码   收藏代码
    1. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    2.   <property name="basePackage" value="org.mybatis.spring.sample.mapper" />  
    3. </bean>  
     
  2. 在业务层可直接注入DAO接口操作,注入时使用的是接口名,其首字母小写
  3. 注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误

这篇关于mybatis与spring3.1整合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740202

相关文章

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为