整合 MyBatis

  • 整合 MyBatis - 依赖
  • 整合 MyBatis - 数据源
  • 整合 MyBatis - SqlSessionFactoryBean
  • 整合 MyBatis - MapperScannerConfigurer
  • 完整配置文件

Java 从 0 到架构师目录:【Java从0到架构师】学习记录

学习 Spring 搭配这门课效果更好:《孙哥说Spring5》学习笔记

Gitee 代码:https://gitee.com/szluyu99/mj_java_frame/tree/master/02_Spring/

【Spring 持久层】Spring 与 MyBatis 整合

整合 MyBatis - 依赖

Spring 整合 MyBatis 所需依赖:spring-jdbc、mybatis-spring

<!-- Spring整合MyBatis -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.8.RELEASE</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.5</version>
</dependency>

其他依赖:

  • 必要:spring-context、mysql-connector-java、mybatis
  • 可选:logback-classic、druid

整合 MyBatis - 数据源

<!-- 配置文件路径 -->
<context:property-placeholder location="db.properties"/><!-- 连接池(Druid) -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driverClass}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/>
</bean>

数据源也可以使用:

  • Spring 的 DriverManagerDataSource
  • MyBatis 的 PooledDataSource

这里配置的连接池,默认会自动提交事务

整合 MyBatis - SqlSessionFactoryBean

<!-- 创建SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据源 --><property name="dataSource" ref="dataSource"/><!-- 需要设置别名的包(领域模型所在的包) --><property name="typeAliasesPackage" value="com.mj.domain"/><!-- MyBatis映射文件的位置 --><property name="mapperLocations"><array><value>mappers/*.xml</value></array></property>
</bean>

整合 MyBatis - MapperScannerConfigurer

<!-- 扫描dao -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 设置SqlSessionFactoryBean的id --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 设置dao的包 --><property name="basePackage" value="com.mj.dao"/>
</bean>

配置完后可以通过 getBean 方法获取 dao 的代理对象,bean 的 id 是 dao 类名的小驼峰形式

  • 比如 com.mj.dao.SkillDao 的 id 是 skillDao
SkillDao dao = ctx.getBean("skillDao", SkillDao.class);

完整配置文件

applicationContext.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置文件路径 --><context:property-placeholder location="db.properties"/><!-- 数据源(Spring的DriverManagerDataSource) -->
<!--    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">-->
<!--        <property name="driverClassName" value="${jdbc.driverClass}"/>-->
<!--        <property name="url" value="${jdbc.url}"/>-->
<!--        <property name="username" value="${jdbc.username}"/>-->
<!--        <property name="password" value="${jdbc.password}"/>-->
<!--    </bean>--><!--    &lt;!&ndash; 数据源(MyBatis的PooledDataSource) &ndash;&gt;-->
<!--    <bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">-->
<!--        <property name="driver" value="${jdbc.driverClass}"/>-->
<!--        <property name="url" value="${jdbc.url}"/>-->
<!--        <property name="username" value="${jdbc.username}"/>-->
<!--        <property name="password" value="${jdbc.password}"/>-->
<!--    </bean>--><!-- 数据源(Druid) --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driverClass}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!-- 创建SqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据源 --><property name="dataSource" ref="dataSource"/><!-- 这个包底下的类会自动设置别名(一般是领域模型) --><property name="typeAliasesPackage" value="com.mj.domain"/><!-- 映射文件的位置 --><property name="mapperLocations"><array><value>mappers/*.xml</value></array></property></bean><!-- 扫描dao --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 设置SqlSessionFactoryBean的id --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 设置dao的包 --><property name="basePackage" value="com.mj.dao"/></bean></beans>

【Java从0到架构师】Spring - 整合 MyBatis相关推荐

  1. 【Java从0到架构师】SpringBoot - MyBatis

    SpringBoot - MyBatis 集成 MyBatis 引入依赖 数据源配置 - 源码 MyBatis 配置 - 源码 扫描 Dao MyBatis 主配置 - XML.注解.applicat ...

  2. 【Java从0到架构师】SSM 整合(XML、纯注解)

    SSM 整合 父子容器 父子容器的配置文件建议 子容器的加载创建 父容器的加载创建 MyBatis 补充 mybatis-config.xml Maven 补充 SSM 整合 - 纯注解 Initia ...

  3. 【Java从0到架构师】Spring - 纯注解开发

    纯注解开发 纯注解开发 - AOP 纯注解开发 - 整合 MyBatis 纯注解开发 - 事务管理 JSR 注解 JSR 注解 - @Resource.@Inject JSR 注解 - @PostCo ...

  4. 【Java从0到架构师】Spring - IoC 控制反转、DI 依赖注入

    IoC 控制反转.DI 依赖注入 Spring 简介 Spring 基本使用 - IoC 容器 依赖注入 (Dependency Injection) 基于 setter 的注入 - 自定义对象 be ...

  5. 【Java从0到架构师】Spring - 注解

    注解 读取多个配置文件 注解实现 bean 标签 - @Component.@Component-scan 注解实现注入 - @Autowired.@Value.@PropertySource 注解实 ...

  6. 【Java从0到架构师】Spring - 事务管理

    事务管理 声明式事务 propagation - 设置事务传播行为 read-only - 告诉数据库该事务只读 timeout - 超时抛出异常 rollback-for.no-rollback-f ...

  7. 【Java从0到架构师】Spring - AOP

    AOP AOP 编程使用 AOP - MethodBeforeAdvice AOP - MethodInterceptor AOP - 动态代理的底层实现 AOP - 切入点表达式 AOP - 目标方 ...

  8. 【Java从0到架构师】Spring - 生命周期、代理

    生命周期.代理 bean 的生命周期 代理 业务层的一些问题 静态代理 (Static Proxy) 动态代理 (Dynamic Proxy) JDK 动态代理 - Proxy.newProxyIns ...

  9. 【Java从0到架构师】Spring - 复杂对象、Converter

    复杂对象.Converter 创建过程比较复杂的对象 实例工厂 静态工厂 FactroyBean 引入外部配置文件 SpEL表达式 scope - 控制 bean 是否单例 Converter Spr ...

最新文章

  1. 第二章 Servlet核心技术 实训二
  2. Matlab与ROS通信设置
  3. 《Beginning Linux Programming》读书笔记(二)
  4. Supervisor重新加载配置启动新的进程
  5. golang defer的使用
  6. 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...
  7. 设置css3动画的顺序,CSS3 “瓷砖”顺序飘落的动画
  8. ubuntu查看版本
  9. 【Java每日一题】20161019
  10. Centos7 升级稳定版 openssl
  11. Android重力感应实现方式简介
  12. vs2015 社区版 + Qt 5.13.2 安装
  13. vtkContourFilter等值面(线)
  14. oa办公系统文件存取错误_如何处理OA系统在线阅读或编辑文档时提示“文件存取错误”的问题...
  15. mongoDB 注册成开启自启动项
  16. 11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装
  17. 让电脑死机c语言,秘技:如何悄无声息的让一台电脑死机
  18. 1031 查验身份证 PTA
  19. android 10.0 在系统源码下生成jks系统签名文件
  20. Shiro系统权限管理、及原理剖析

热门文章

  1. 搭建私域流量池实施落地——四大运营步骤
  2. 厂商为什么不能用前一代的处理器库存做一个便宜的笔记本电脑?
  3. 排序算法(四)--谢尔排序(缩小增量排序)
  4. 1.2.1 计算机网络的分层结构、协议、服务和接口(转载)
  5. 亚马逊技能开发入门_Amazon QuickSight入门
  6. sql server权限_保护SQL Server审核的访问权限
  7. SQL Server 2014中的混合云和Hekaton功能
  8. jmeter参数化之配置元件CSV控件
  9. [BJOI2019]奥术神杖(分数规划+AC自动机+DP)
  10. HTML(XHTML)基础知识(三)——【image】