mybatis整合spring简单介绍

本文详细介绍Spring框架如何整合MyBatis,包括传统项目整合步骤、Spring Boot环境下整合方法及不同DAO实现方式。涵盖数据库连接池配置、SqlSessionFactory设置、Mapper代理对象创建等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. spring 整合Mybatis整合思路

   1、SqlSessionFactory对象应该放到spring容器中作为单例存在。

   2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象。

   3、Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。

   4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。

 

2. springboot整合Mybatis:

     1.定义数据库连接池

     2. 配置MybatisConfig 配置类: 

        第一步: 加注解 @Configuration 事务管理: @EnableTransactionManagement  扫描接口类: @MapperScan("类路径")

        第二步: 声明sqlSessionFactory类,注入数据源,分页插件,声明别名包所在类路径,xml文件所在路径进行初始化

 

3. 传统项目 整合的步骤

第一步:创建一个java工程。

第二步:导入jar包。(上面提到的jar包)

第三步:mybatis的配置文件sqlmapConfig.xml

第四步:编写Spring的配置文件

1、数据库连接及连接池

2、事务管理(暂时可以不配置)

3、sqlsessionFactory对象,配置到spring容器中

4、mapeer代理对象或者是dao实现类配置到spring容器中。

第五步:编写dao或者mapper文件

第六步:测试。

3.  SqlMapConfig.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="cn.itcast.mybatis.pojo"/>

      </typeAliases>

      <mappers>

           <mapper resource="sqlmap/User.xml"/>

      </mappers>

</configuration>

 

4.  applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

      xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

 

      <!-- 加载配置文件 -->

      <context:property-placeholder location="classpath:db.properties" />

      <!-- 数据库连接池 -->

      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

           destroy-method="close">

           <property name="driverClassName" value="${jdbc.driver}" />

           <property name="url" value="${jdbc.url}" />

           <property name="username" value="${jdbc.username}" />

           <property name="password" value="${jdbc.password}" />

           <property name="maxActive" value="10" />

           <property name="maxIdle" value="5" />

      </bean>

      <!-- mapper配置 -->

      <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->

      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

           <!-- 数据库连接池 -->

           <property name="dataSource" ref="dataSource" />

           <!-- 加载mybatis的全局配置文件 -->

           <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />

      </bean>

 

</beans>

 

5.  db.properties

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8

jdbc.username=root

jdbc.password=root

 

6.   Dao的开发

三种dao的实现方式:

1、传统dao的开发方式

2、使用mapper代理形式开发方式

                 <!-- 配置mapper代理对象 -->

                    <bean class="org.mybatis.spring.mapper.MapperFactoryBean">

                      <property name="mapperInterface" value="cn.itcast.mybatis.mapper.UserMapper"/>

                    <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>

                 </bean>

3、使用扫描包配置mapper代理

                <!-- 使用扫描包的形式来创建mapper代理对象 -->

                <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

                     <property name="basePackage" value="cn.itcast.mybatis.mapper"></property>

                </bean>

          每个mapper代理对象的id就是类名,首字母小写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值