如果不需要连接池,那么只需要简单的在pom文件中,添加mysql依赖:

  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>xxx.xxx.xxx</version>
  5. </dependency>

然后在配置文件中添加配置:

  1. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  2. spring.datasource.url=jdbc:mysql://hostname:port/xxxxxx?autoReconnect=true&failOverReadOnly=false&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true
  3. spring.datasource.username=xxxxxx
  4. spring.datasource.password=xxxxxx

MySQL datasource 就配置完了。

如果使用连接池,则需要一个数据库配置类,如下是使用 PooledDataSource 的 Java 配置文件:

  1. package cn.liuxingwei.judge.config;
  2.  
  3. import org.apache.ibatis.datasource.pooled.PooledDataSource;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.mybatis.spring.SqlSessionFactoryBean;
  6. import org.mybatis.spring.annotation.MapperScan;
  7. import org.springframework.beans.factory.annotation.Value;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import org.springframework.core.io.Resource;
  11. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  12. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  13. import org.springframework.transaction.PlatformTransactionManager;
  14. import org.springframework.transaction.annotation.EnableTransactionManagement;
  15.  
  16. /**
  17. * 数据源相关配置
  18. * @author liuxingwei
  19. */
  20. @Configuration
  21. @EnableTransactionManagement
  22. public class DataConfiguration {
  23.  
  24. /**
  25. * mysql driver 变量,取自外挂配置文件
  26. * @author liuxingwei
  27. */
  28. @Value("${spring.datasource.driver-class-name}")
  29. private String mysqlDriver;
  30.  
  31. /**
  32. * mysql 连接 url,取自外挂配置文件
  33. * @author liuxingwei
  34. */
  35. @Value("${spring.datasource.url}")
  36. private String mysqlUrl;
  37.  
  38. /**
  39. * mysql 连接用户名,取自外挂配置文件
  40. * @author liuxingwei
  41. */
  42. @Value("${spring.datasource.username}")
  43. private String mysqlUsername;
  44.  
  45. /**
  46. * mysql 连接密码,取自外挂配置文件
  47. */
  48. @Value("${spring.datasource.password}")
  49. private String mysqlPassword;
  50.  
  51. /**
  52. * 数据源(dataSource)定义
  53. * @author liuxingwei
  54. * @return DataSource
  55. */
  56. @Bean
  57. public PooledDataSource dataSource() {
  58. PooledDataSource dataSource = new PooledDataSource();
  59. dataSource.setDriver(mysqlDriver);
  60. dataSource.setUrl(mysqlUrl);
  61. dataSource.setUsername(mysqlUsername);
  62. dataSource.setPassword(mysqlPassword);
  63. return dataSource;
  64. }
  65.  
  66. }

MyBatis 也不需要特殊的配置,只要在pom中加上依赖:

  1. <dependency>
  2. <groupId>tk.mybatis</groupId>
  3. <artifactId>mapper-spring-boot-starter</artifactId>
  4. <version>xxx.xxx.xxx</version>
  5. </dependency>

然后分别创建实体类、Mapper 接口和 Mapper XML 文件,就可以使用了。附上一个可用于 Eclipse 的 MyBatis Generator 插件的配置文件:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
  7. <property name="autoDelimitKeywords" value="true"/>
  8. <property name="beginningDelimiter" value="`"/>
  9. <property name="endingDelimiter" value="`"/>
  10. <commentGenerator>
  11. <property name="suppressDate" value="true"/>
  12. <property name="addRemarkComments" value="true"/>
  13. </commentGenerator>
  14. <jdbcConnection driverClass="com.mysql.jdbc.Driver"
  15. connectionURL="jdbc:mysql://hostname:port/judge?autoReconnect=true&amp;failOverReadOnly=false&amp;useSSL=false&amp;allowMultiQueries=true&amp;rewriteBatchedStatements=true"
  16. userId="root"
  17. password="123456"></jdbcConnection>
  18. <javaModelGenerator targetPackage="cn.liuxingwei.judge.domain"
  19. targetProject="judge/src/main/java">
  20. <property name="trimStrings" value="true"/>
  21. </javaModelGenerator>
  22. <sqlMapGenerator targetPackage="cn.liuxingwei.judge.mapper"
  23. targetProject="judge/src/main/resources"/>
  24. <javaClientGenerator type="XMLMAPPER"
  25. targetPackage="cn.liuxingwei.judge.mapper"
  26. targetProject="judge/src/main/java"/>
  27. <table tableName="%">
  28. <generatedKey column="id" sqlStatement="MySql"/>
  29. <domainObjectRenamingRule searchString="^T" replaceString="" />
  30. </table>
  31. </context>
  32. </generatorConfiguration>

顺便提一句,如果数据库的字符编码为 UTF8,可以在连接 url 中添加 characterEncoding=UTF-8 来实现,不必管 MySQL 服务器本身的设置:

  1. spring.datasource.url=jdbc:mysql://hostname:port/xxx?characterEncoding=UTF8&autoReconnect=true&failOverReadOnly=false

但是如果数据库编码为 UTF8MB4,是不能简单地把连接串中的 UTF8 换成 UTF8MB4 的,会报错,只能是在 MySQL 的配置文件(my.cnf)中将 MySQL 的默认字符集设置为 utf8mb4,连接串中不再设置 characterEncoding。

Spring Boot 2 实践记录之 MySQL + MyBatis 配置的更多相关文章

  1. Spring Boot 2 实践记录之 MyBatis 集成的启动时警告信息问题

    按笔者 Spring Boot 2 实践记录之 MySQL + MyBatis 配置 中的方式,如果想正确运行,需要在 Mapper 类上添加 @Mapper 注解. 但是加入此注解之后,启动时会出现 ...

  2. Spring Boot 2 实践记录之 封装依赖及尽可能不创建静态方法以避免在 Service 和 Controller 的单元测试中使用 Powermock

    在前面的文章中(Spring Boot 2 实践记录之 Powermock 和 SpringBootTest)提到了使用 Powermock 结合 SpringBootTest.WebMvcTest ...

  3. Spring Boot 2 实践记录之 使用 ConfigurationProperties 注解将配置属性匹配至配置类的属性

    在 Spring Boot 2 实践记录之 条件装配 一文中,曾经使用 Condition 类的 ConditionContext 参数获取了配置文件中的配置属性.但那是因为 Spring 提供了将上 ...

  4. Spring Boot 2 实践记录之 Redis 及 Session Redis 配置

    先说 Redis 的配置,在一些网上资料中,Spring Boot 的 Redis 除了添加依赖外,还要使用 XML 或 Java 配置文件做些配置,不过经过实践并不需要. 先在 pom 文件中添加 ...

  5. Spring Boot 2 实践记录之 Powermock 和 SpringBootTest

    由于要代码中使用了 Date 类生成实时时间,单元测试中需要 Mock Date 的构造方法,以预设其行为,这就要使用到 PowerMock 在 Spring Boot 的测试套件中,需要添加 @Ru ...

  6. Spring Boot 2 实践记录之 使用 Powermock、Mockito 对 UUID 进行 mock 单元测试

    由于注册时,需要对输入的密码进行加密,使用到了 UUID.sha1.md 等算法.在单元测试时,使用到了 Powermock,记录如下. 先看下加密算法: import org.apache.comm ...

  7. Spring Boot 2 实践记录之 条件装配

    实验项目是想要使用多种数据库访问方式,比如 JPA 和 MyBatis. 项目的 Service 层业务逻辑相同,只是具体实现代码不同,自然是一组接口,两组实现类的架构比较合理. 不过这种模式却有一个 ...

  8. Spring Boot 2 实践记录之 组合注解原理

    Spring 的组合注解功能,网上有很多文章介绍,不过都是介绍其使用方法,鲜有其原理解析. 组合注解并非 Java 的原生能力.就是说,想通过用「注解A」来注解「注解B」,再用「注解B」 来注解 C( ...

  9. Spring Boot 报错记录

    Spring Boot 报错记录 由于新建的项目没有配置数据库连接启动报错,可以通过取消自动数据源自动配置来解决 解决方案1: @SpringBootApplication(exclude = Dat ...

随机推荐

  1. ElementTree 解析xml(minidom解析xml大文件时,MemoryError)

    在使用minido解析xml文件时,因为文件过大,结果报错MemoryError.查询后得知是因为minidom在解析时是将所有文件放到内存里的,很占用内存,所以要考虑换一种方法来处理xml文件.   ...

  2. 强关联二维材料1T—TaS2晶体

    我校物理系张远波教授课题组通过一种新的实验方法——可控电荷插层,实现了对强关联二维材料1T—TaS2晶体相变的全面研究.1月26日,相关研究论文Gate-tunable phase transitio ...

  3. Intellij IDEA使用Maven搭建spark开发环境(scala)

    如何一步一步地在Intellij IDEA使用Maven搭建spark开发环境,并基于scala编写简单的spark中wordcount实例. 1.准备工作 首先需要在你电脑上安装jdk和scala以 ...

  4. SVN版本冲突问题

    --------------------siwuxie095 SVN 版本冲突问题 如:Jack 和 Mary 从仓库中将项目下载到本地,然后 Jack 修改了 项目中的一个文件,并上传到仓库中,之后 ...

  5. .NET格式化字符串详细说明

    DataFormatString属性:{0:Bxx}B为取值类型 C 以货币格式显示数值. D 以十进制格式显示数值. E 以科学记数法(指数)格式显示数值. F 以固定格式显示数值. G 以常规格式 ...

  6. 零基础学习hadoop到上手工作线路指导(中级篇)

    此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结. 五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解: hadoop分为h ...

  7. linux安装php 按 apache方式

    1.下载php源码包 在 http://php.net/downloads.php 下载 php-5.6.11.tar.gz 2.进入到php源码包中,configure > ./configu ...

  8. 【深度好文】多线程之WaitHandle-->派生-》Semaphore信号量构造

    Semaphore 继承自WaitHandle. 信号量说简单点就是为了线程同步,或者说是为了限制线程能运行的数量. //创建一个限制资源类 //资源数为5,开放资源数为2 //主线程自动占有3个资源 ...

  9. Paypal支付

    <!--Paypal支付数据开始--> <input type="hidden" name="charset" value="utf ...

  10. 函数中返回char *类型

    记录一次比较容易引起混淆的地方. #include <stdio.h> char *str(void) { return "nihao\n"; } int main() ...