热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

好程序员Java学习路线分享MyBatis之Spring整合

好程序员Java学习路线分享MyBatis之Spring整合,Spring、SpringMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和

  好程序员Java 学习路线分享 MyBatis Spring 整合, Spring SpringMVC MyBatis 是目前企业开发的三大框架。本章我们将学习将 Spring MyBatis 整合到一起,成为我们项目开发的技术骨架。

引入依赖

首先我们需要在Maven 项目中添加依赖, Spring 框架和 MyBatis 框架需要的依赖有:

Ø  mybatis     MyBatis

Ø  mybatis-spring   MyBatis Spring 兼容包,用于整合 MyBatis

Ø  spring-jdbc   Spring JDBC 包,配置数据源时需要

Ø  spring-test   Spring 单元测试

Ø  spring-context   Spring 上下文,提供 IOC AOP 服务

Ø  Junit     单元测试框架

Ø  mysql-connector-java   MySQL 数据库驱动

Ø  c3p0     连接池

添加配置文件

首先我们用properties 文件配置 JDBC 的参数:

示例代码:jdbc.properties

1.  driver=com.mysql.cj.jdbc.Driver

2.  url=jdbc:mysql://localhost/java1903?serverTimezOne=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false

3.  user=root

4.  password=123456

接下来在Spring 配置文件中整合 MyBatis

1. 

2. 

3. 

4. 

5. 

6. 

7. 

8. 

9. 

10. 

11. 

12. 

13. 

14. 

15. 

16. 

17. 

18. 

19. 

20. 

21. 

22. 

23. 

24. 

25. 

26. 

27. 

28. 

29. 

30. 

31. 

32. 

33. 

34. 

35. 

36. 

37. 

38. 

39. 

编写Mapper 接口

以一个基本的查询功能为例

代码示例:

1.  /**

2.   * 用户 DAO 接口

3.   */

4.  public interface UserDAO {

5.        /**

6.       * 查询所有用户

7.       */

8.      List selectAll();

9.  }

编写Mapper 映射文件

编写Mapper 接口的映射,实现查询功能

代码示例:

1. 

2. 

3.          PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

4.          "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

5. 

6. 

7.      

8.      

9.          

10.          

11.          

12.          

13.          

14.          

15.          

16.          

17.          

18.      

19.      

20.      

23.    

24. 

Spring 整合 JUnit 进行单元测试

使用Spring 整合 JUnit ,测试 Mapper 接口是否能用 SpringIOC 实现注入:

代码示例

1.  @ContextConfiguration(locatiOns= "classpath:applicationContext.xml")

2.  @RunWith(SpringJUnit4ClassRunner.class)

3.  public class TestDAO {

4. 

5.      @Resource

6.      UserDAO userDAO;

7. 

8.      @Test

9.      public void testUserDAO(){

10.           List users = userDAO.selectAll();

11.          users.forEach((user)->System.out.println(user));

12.      }

13.  }

好程序员Java学习路线分享MyBatis之Spring整合

总结

使用Spring 整合 MyBatis 后,能够利用 Spring 强大的 IOC 机制,将 Mapper 接口的代理对象注入进来,从而避免了手动创建 SqlSessionFactory SqlSession 对象的麻烦,同时 Spring SqlSession 的访问方式进行了优化,解决了 SQLSession 的线程安全问题。


推荐阅读
  • Mac上安装MySQL过程分享【MySQL】
    数据库|mysql教程Mac,安装MySQL数据库-mysql教程1.下载MySQL下载地址,选择要下载的版本,建议选择DMG安装包,用着比较方便。影视源码可开分站,ubuntu编 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 1.使用通用mapper时实体类的mapper接口(即普通的dao接口)继承了通用mapper接口后,在依赖注入实体类的mapper接口时 ... [详细]
  • kettle 8.3 连接mysql8.0.30 的入坑体验
      写这个东西主要是想吐槽为主,真的无语了。  kettle是java写的java版权是oracle的。mysql是Oracle的。   吐槽:  一般来说,在kettle中新建m ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 标题: ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • Android跨进程通信IPC之9——Binder通信机制
    移步系列Android跨进程通信IPC系列1Android整体架构Android系统架构及系统源码目录Android系统架构 ... [详细]
author-avatar
网吧b国漫救星
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有