温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Mybatis_day06:Mybatis整合Spring的步骤是什么

发布时间:2021-10-25 11:40:53 来源:亿速云 阅读:168 作者:iii 栏目:web开发

本篇内容介绍了“Mybatis_day06:Mybatis整合Spring的步骤是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring  的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的  DataAccessException。最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。

 Mybatis整合spring

  1. 整合思路

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

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

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

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

整合需要的jar包

  • spring的jar包

  • Mybatis的jar包

  • Spring+mybatis的整合包。

  • Mysql的数据库驱动jar包。

  • 数据库连接池的jar包。

整合的步骤

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

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

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

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

1、数据库连接及连接池

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

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

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

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

第六步:测试。

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="com.pp.mybatis.pojo"/>  </typeAliases>  <mappers>  <mapper resource="sqlmap/User.xml"/>  </mappers>  </configuration>  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/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd  http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd  http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd  http://www.springframework.org/schema/utilhttp://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>

db.properties

jdbc.driver=com.mysql.jdbc.Driver  jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8  jdbc.username=root  jdbc.password=root

Dao的开发

三种dao的实现方式:

1、传统dao的开发方式

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

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

传统dao的开发方式

接口+实现类来完成。需要dao实现类需要继承SqlsessionDaoSupport类

Dao实现类

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {  @Override  public User findUserById(int id) throws Exception {  SqlSession session = getSqlSession();  User user = session.selectOne("test.findUserById", id);  //不能关闭SqlSession,让spring容器来完成  //session.close();  return user;  }  @Override  public void insertUser(User user) throws Exception {  SqlSession session = getSqlSession();  session.insert("test.insertUser", user);  session.commit();  //session.close();  }  }

配置dao

把dao实现类配置到spring容器中

<!-- 配置UserDao实现类 -->  <bean id="userDao" class="com.pp.dao.UserDaoImpl">  <property name="sqlSessionFactory" ref="sqlSessionFactory"/>  </bean>  测试方法  初始化:  private ApplicationContext applicationContext;  @Before  public void setUp() throws Exception{  String configLocation = "classpath:spring/ApplicationContext.xml";  //初始化spring运行环境  applicationContext = new ClassPathXmlApplicationContext(configLocation);  }  测试:  @Test  public void testFindUserById() throws Exception {  UserDao userDao = (UserDao) applicationContext.getBean("userDao");  User user = userDao.findUserById(1);  System.out.println(user);  }

1.Mapper代理形式开发dao

 a.开发mapper接口

开发mapper文件

Mybatis_day06:Mybatis整合Spring的步骤是什么

配置mapper代理

<!-- 配置mapper代理对象 -->  <bean class="org.mybatis.spring.mapper.MapperFactoryBean">  <property name="mapperInterface"  value="com.pp.mybatis.mapper.UserMapper"/>**  <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  </bean>  测试方法  public class UserMapperTest {  private ApplicationContext applicationContext;  @Before  public void setUp() throws Exception {  applicationContext = new  ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");**  }  @Test  public void testGetUserById() {  UserMapper userMapper = applicationContext.getBean(UserMapper.class);  User user = userMapper.getUserById(1);  System.out.println(user);  }  }

扫描包形式配置mapper

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

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  <property name="basePackage" value="com.pp.mybatis.mapper"></property>  </bean>

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

Mybatis_day06:Mybatis整合Spring的步骤是什么

“Mybatis_day06:Mybatis整合Spring的步骤是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI