一、介绍

  SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式。

  SpringBoot整合Mybatis也有两种方式,分别为XML配置方式和注解方式,主要优势点如下:

  • XML配置方式:隔离sql和业务代码,清晰表达sql,尤其对于较长的sql。
  • 注解方式:代码更加精简,方便。

本文主要讨论XML配置方式,后续文章讨论注解方式。

二、SpringBoot整合Mybatis连接Mysql数据库

1、添加MySQL 连接驱动依赖、SpringBoot Mybatis 依赖,完整pom文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5.  
  6. <groupId>com.example</groupId>
  7. <artifactId>demo</artifactId>
  8. <version>1.0.0</version>
  9. <packaging>jar</packaging>
  10.  
  11. <name>hello</name>
  12. <description>Demo project for Spring Boot</description>
  13.  
  14. <!--版本信息-->
  15. <properties>
  16. <mybatis-spring-boot>1.3.0</mybatis-spring-boot>
  17. <mysql-connector>5.1.39</mysql-connector>
  18. </properties>
  19.  
  20. <!-- SpringBoot启动父依赖 -->
  21. <parent>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-parent</artifactId>
  24. <version>2.1.1.RELEASE</version>
  25. <relativePath/> <!-- lookup parent from repository -->
  26. </parent>
  27.  
  28. <dependencies>
  29. <!-- Spring Boot Web 依赖 -->
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-starter-web</artifactId>
  33. </dependency>
  34.  
  35. <!-- MySQL 连接驱动依赖 -->
  36. <dependency>
  37. <groupId>mysql</groupId>
  38. <artifactId>mysql-connector-java</artifactId>
  39. <version>${mysql-connector}</version>
  40. </dependency>
  41.  
  42. <!-- SpringBoot Mybatis 依赖 -->
  43. <dependency>
  44. <groupId>org.mybatis.spring.boot</groupId>
  45. <artifactId>mybatis-spring-boot-starter</artifactId>
  46. <version>${mybatis-spring-boot}</version>
  47. </dependency>
  48.  
  49. <!-- lombok依赖-->
  50. <dependency>
  51. <groupId>org.projectlombok</groupId>
  52. <artifactId>lombok</artifactId>
  53. </dependency>
  54.  
  55. <!-- logback 依赖-->
  56. <dependency>
  57. <groupId>ch.qos.logback</groupId>
  58. <artifactId>logback-classic</artifactId>
  59. </dependency>
  60.  
  61. <!--Slf4j 依赖-->
  62. <dependency>
  63. <groupId>org.slf4j</groupId>
  64. <artifactId>jcl-over-slf4j</artifactId>
  65. </dependency>
  66. </dependencies>
  67.  
  68. </project>

注:

整合MyBatis的核心依赖MyBatis-Spring-Boot-Starter提供:

  • 自动检测现有的DataSource
  • 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递
  • 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
  • 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。

因此,引入该Starter之后,只需要定义一个DataSource即可(application.properties中可配置),它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。会自动扫描你的Mappers,连接到SqlSessionTemplate,并注册到Spring上下文中。

2、配置application.yml文件

  • 配置数据库连接信息(数据源)

  1. spring:
  2. #数据源
  3. datasource:
  4. url: jdbc:mysql://localhost:3306/springbootdb??useUnicode=true&amp;characterEncoding=UTF-8
  5. username: root
  6. password: 123
  7. driver-class-name: com.mysql.jdbc.Driver
  • 配置mybatis

  1. #mybatis配置
  2. mybatis:
  3. typeAliasesPackage: com.example.mybaitsxml.dao.entity
  4. mapperLocations: classpath:mapper/*.xml
  5. #configLocation: classpath:/mybatis-config.xml

注:通常,若mybatis配置信息较少,只是针对基本配置无需复杂配置,则只需在application.yml文件中配置即可,否则最好配置在 mybatis-config.xml中。

3、代码实现

demo工程文件结构:

  • controller层

  1. @Slf4j
  2. @RestController
  3. @RequestMapping("/web")
  4. public class UserController {
  5. @Autowired
  6. private UserService userService;
  7.  
  8. @GetMapping("/queryAllUsers")
  9. public List<User> queryAllUsers(){
  10. return userService.queryAllUsers();
  11. }
  12. }
  • service层(实现)

  1. @Slf4j
  2. @Service
  3. public class UserServiceImpl implements UserService {
  4. @Autowired
  5. private UserMapper userMapper;
  6.  
  7. @Override
  8. public List<User> queryAllUsers() {
  9. log.info("/queryAllUsers start...");
  10. return userMapper.queryAllUsers();
  11. }
  12. }
  • dao层

dao层分为数据库实体类(entity)和数据库操作mapper接口(mapper)

entity:

  1. @Data
  2. public class User {
  3. private String name ;
  4. private String sex;
  5. private Integer age;
  6. private Integer classNo;
  7.  
  8. }

mapper:

  1. public interface UserMapper {
  2. List<User> queryAllUsers();
  3. }
  • mapper.xml实现

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3.  
  4. <mapper namespace= "com.example.mybaitsxml.dao.mapper.UserMapper" >
  5. <resultMap id ="UserInfoMap" type="com.example.mybaitsxml.dao.entity.User">
  6. <result column="name_" property="name"/>
  7. <result column="sex" property="sex"/>
  8. <result column="age" property="age"/>
  9. <result column="class_no" property="classNo"/>
  10. </resultMap>
  11.  
  12. <select id = "queryAllUsers" resultMap="UserInfoMap">
  13. select
  14. name_,
  15. sex,
  16. age,
  17. class_no
  18. from
  19. tbl_user
  20. </select>
  21. </mapper>

4、执行效果

5、Demo源码

  本文示例源码已托管到本人Github仓库,有需要的朋友请自行拉取。

地址:https://github.com/gavincoder/SpringBoot--Learning

SpringBoot 整合 Mybatis + Mysql——XML配置方式的更多相关文章

  1. SpringBoot系列-整合Mybatis(XML配置方式)

    目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...

  2. SpringBoot整合MyBatis之xml配置

    现在业界比较流行的数据操作层框架 MyBatis,下面就讲解下 Springboot 如何整合 MyBatis,这里使用的是xml配置SQL而不是用注解.主要是 SQL 和业务代码应该隔离,方便和 D ...

  3. SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)

    前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...

  4. SpringBoot集成MyBatis的Bean配置方式

    SpringBoot集成MyBatis的Bean配置方式 SpringBoot是一款轻量级开发的框架,简化了很多原先的xml文件配置方式,接下来就介绍一下如何不适用XML来配置Mybatis spri ...

  5. SpringBoot整合Mybatis之xml

    SpringBoot整合Mybatis mybatis ORM框架.几个重要的概念: Mapper配置 : 可以使用基于XML的Mapper配置文件来实现,也可以使用基于Java注解的Mybatis注 ...

  6. springboot整合mybatis(映射文件方式和注解方式)

    springboot作为一个微服务框架,给我们开发人员提供极大的便利,秉着约定大于配置的原则,通过starter包的形式为我们做了许多默认的配置,在进行数据持久化到关系型数据库时,我们一般都会首选sp ...

  7. ssm整合(基于xml配置方式)

    本文是基于xml配置的方式来整合SpringMVC.Spring和Mybatis(基于注解的方式会再写一篇文章),步骤如下: (1)首先自然是依赖包的配置文件 pom.xml <project ...

  8. Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

    上一篇我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问.但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式, ...

  9. springboot整合mybatis的两种方式

    https://blog.csdn.net/qq_32719003/article/details/72123917 springboot通过java bean集成通用mapper的两种方式 前言:公 ...

随机推荐

  1. C#高效新增数据到数据库(十万级别测试)

    我们在对数据库进行新增数据时,怎么能把速度提到最快,时间缩到最短呢?下面针对三种方法进行比较 新增 逐条新增数据模式 Stopwatch s2 = new Stopwatch(); s2.Start( ...

  2. Cisco ISR4400 Netflow 配置模板

    flow exporter NAME destination 145.0.1.200 transport udp 9991 export-protocol netflow-v5 flow monito ...

  3. 三、OPENERP 中的对象关系类型

    OE中的对象关系一共分四种,one2one,one2many,many2one,many2many.他们的意思分别是一对一,一对多,多对一以及多对多. 我们新建一个模块来测试这四种类型 1.one2o ...

  4. Mac 10.12安装SecureCRT

    下载: (链接: https://pan.baidu.com/s/1eSNBoFC 密码: sztc) 安装参考: http://www.cnblogs.com/EasonJim/p/7568734. ...

  5. 使用InstallUtil安装及卸载Windows服务的具体操作 Visual Studio 2012版本

    关于Visual Studio 2012中使用InstallUtil对Windows服务进行安装与卸载的文章,在MSDN中的http://msdn.microsoft.com/en-us/librar ...

  6. CKEditor图片上传实现详细步骤(使用Struts 2)

    本人使用的CKEditor版本是3.6.3.CKEditor配置和部署我就不多说. CKEditor的编辑器工具栏中有一项“图片域”,该工具可以贴上图片地址来在文本编辑器中加入图片,但是没有图片上传. ...

  7. Cassandra概念学习系列之Windows里下载且安装配置Cassandra(最新的3.11.1版本)(图文详解)

    不多说,直接上干货!  最近我开始在windows环境中使用Cassandra,虽然在Cassandra站点的安装命令非常清楚和精简,我仍然在环境配置上遇到一些问题.所以我想为后来者分享下我的经验. ...

  8. Javac的命令(注解相关)

    1.-Akey[=value] Options to pass to annotation processors. These are not interpreted by javac directl ...

  9. Hadoop Metrics2

    来源:Hadoop Metrics2 Metrics are collections of information about Hadoop daemons, events and measureme ...

  10. JAVA练手--链表

    package tet; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; impo ...