springboot学习入门简易版八---springboot2.0多环境配置、整合mybatis mysql8+(19-20)
2.11 SpringBoot多环境配置(19)
application.properties中配置
Spring.profiles.active=prd
配置环境:
Application-dev.properties 开发环境
Application-test.properties 测试环境
Application-uat.properties 用户测试环境
Application-prd.properties 生产环境
2.12 SpringBoot整合mybatis(20)
注意:使用springboot2和mysql8+(8.0.11),jdk8+(jdk8)
配置和之前版本有所不同
项目结构:

从上到下依次创建
2.12.1 实体对象
public class Employee implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
private String lastName;
省略get/set
2.12.2 controller
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Resource
EmployeeService employeeService; @RequestMapping("/insert")
public String insert(String lastName){
Employee emp=new Employee();
emp.setLastName(lastName);
int i=employeeService.insert(emp);
return i+"";
}
}
2.12.3 service
@Service
public class EmployeeService {
@Resource
EmployeeDao employeeDao; public Integer insert(Employee emp) {
return employeeDao.insert(emp);
}
}
省去了接口类写法,直接写service类
2.12.4 dao
public interface EmployeeDao {
int insert(Employee emp);
}
2.12.5 mapping
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springboot2.dao.EmployeeDao">
<insert id="insert" parameterType="com.springboot2.bean.Employee">
insert into myemployeee(last_name) values (#{lastName,jdbcType=VARCHAR})
</insert>
</mapper>
注意:mapping和dao不在同一个包下,配置时通过
mapper-locations: classpath:com/springboot2/mapping/*.xml
扫描xml文件
2.12.6 application配置文件
mybatis:
mapper-locations: classpath:com/springboot2/mapping/*.xml spring:
datasource:
url: jdbc:mysql://localhost:3306/mytest?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root
password: (****)
driver-class-name: com.mysql.cj.jdbc.Driver
注意:
1)url连接与之前版本有所不同,如添加serverTimezone时区,useSSL
2)Url中有时报错,可能是&不识别,需要转为&但有时&也会报错,改为&再尝试。本例即改为&不报错。
3)Jdbc驱动变动为com.mysql.cj.jdbc.Driver,之前为com.mysql.jdbc.Driver
https://blog.csdn.net/qq_22076345/article/details/81952035
2.12.7 启动类
@SpringBootApplication
@MapperScan("com.springboot2.dao")
public class StartApplication { public static void main(String[] args) {
SpringApplication.run(StartApplication.class, args);
} }
2.12.8 pom文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.9.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<!-- mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
</dependencies>
如果不需要start-web,仅使用mybatis-spring-boot-starter和mysql-connector-java即可。
2.12.9 测试
http://localhost:8080/employee/insert?lastName=test2019
入口成功返回1
2.12.10 遇到问题
1)提示找不到jdbc驱动。清除maven仓库中的mysql-connnector包,重新下载。
2)新版本驱动名称变更:
为com.mysql.cj.jdbc.Driver,之前为com.mysql.jdbc.Driver
2.13 SpringBoot整合@Transactional(21)
springboot事务分类:
1)声明事务
2)编程事务
事务原理:AOP技术环绕通知。
注意点:不能捕捉异常,事务通过异常回滚。
Springboot默认集成事务,只要在方法或类上加上@TransacTional即可,
不需要在启动类上@EnableTransactionManagement
springboot学习入门简易版八---springboot2.0多环境配置、整合mybatis mysql8+(19-20)的更多相关文章
- springboot学习入门简易版三---springboot2.0启动方式
2.4使用@componentscan方式启动 2.4.1 @EnableAutoConfiguration 默认只扫描当前类 @EnableAutoConfiguration 默认只扫描当前类,如果 ...
- springboot学习入门简易版二---springboot2.0项目创建
2 springboot项目创建(5) 环境要求:jdk1.8+ 项目结构: 2.1创建maven工程 Group id :com.springbootdemo Artifact id: spring ...
- springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)
使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...
- springboot学习入门简易版五---springboot2.0整合jsp(11)
springboot对jsp支持不友好,内部tomcat对jsp不支持,需要使用外部tomcat,且必须打包为war包. 1 创建maven项目 注意:必须为war类型,否则找不到页面. 且不要把js ...
- springboot学习入门简易版九---springboot2.0整合多数据源mybatis mysql8+(22)
一个项目中配置多个数据源(链接不同库jdbc),无限大,具体多少根据内存大小 项目中多数据源如何划分:分包名(业务)或注解方式.分包名方式类似多个不同的jar,同业务需求放一个包中. 分包方式配置多数 ...
- springboot学习入门简易版四---springboot2.0静态资源访问及整合freemarker视图层
2.4.4 SpringBoot静态资源访问(9) Springboot默认提供静态资源目录位置需放在classpath下,目录名需要符合如下规则 /static /public /resourc ...
- springboot学习入门简易版一---springboot2.0介绍
1.1为什么用springboot(2) 传统项目,整合ssm或ssh,配置文件,jar冲突,整合麻烦.Tomcat容器加载web.xml配置内容 springboot完全采用注解化(使用注解方式启动 ...
- springboot学习入门简易版七---springboot2.0使用@Async异步执行方法(17)
1启动类开启异步调用注解 @SpringBootApplication @EnableAsync //开启异步调用 public class StartApplication { 不开启则异步调用无效 ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
随机推荐
- java单元测试之如何实现异步接口的测试案例
测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4.因为单元测试能够在软件模块组合之前尽快发现问题,所 ...
- 常见的SQL优化面试题
1.在表中建立索引,优先考虑where.group by使用到的字段. 2.查询条件中,一定不要使用select *,因为会返回过多无用的字段会降低查询效率.应该使用具体的字段代替*,只返回使用到的字 ...
- beyond compare解决特殊字符无法输出、多sheet页无法对比以及文件太大超出系统内存问题的Excel转txt脚本
beyond compare解决特殊字符无法输出.多sheet页无法对比以及文件太大超出系统内存问题的Excel转txt脚本 ' XLS_to_CSV.vbs ' ' Converts an Exce ...
- c# 通过json.net中的JsonConverter进行自定义序列化与反序列化
https://www.cnblogs.com/yijiayi/p/10051284.html 相信大家在工作中会经常遇见对json进行序列化与反序列化吧,但通常的序列化与反序列化中的json结构与c ...
- N以内的素数计算(Java代码)
列出小于N的所有素数 普通计算方式, 校验每个数字 优化的几处: 判断是否整除时, 除数使用小于自身的平方根的素数 大于3的素数, 都在6的整数倍两侧, 即 6m - 1 和 6m + 1 publi ...
- SQL 对decimal类型转换为int类型
) AS INT) CountQty select ISNULL( CAST(E.Qty AS INT),0 ) FROM OrderDetail E 空值 需要默认为0 即可
- 接口测试01- Jmeter-线程进程-环境变量
1.1 概念 JMeter 是 Apache 组织使用 Java 开发的一款测试工具 ,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文件.Java ...
- 调用k8s api遇到CERTIFICATE_VERIFY_FAILED的问题解决方法
前言 python3.5.6版本,django1.1.12版本 最近要调用k8s接口,k8s接口的使用方法请参考官网的说明:戳我 调用k8s接口时,遇到 CERTIFICATE_VERIFY_FAIL ...
- k8s Pod 扩容和缩容
在生产环境下,在面临服务需要扩容的场景时,可以使用Deployment/RC的Scale机制来实现.Kubernetes支持对Pod的手动扩容和自动扩容. 手动扩容缩容 通过执行扩容命令,对某个dep ...
- consul集群搭建以及ACL配置
由于时间匆忙,要是有什么地方没有写对的,请大佬指正,谢谢.文章有点水,大佬勿喷这篇博客不回去深度的讲解consul中的一些知识,主要分享的我在使用的时候的一些操作和遇见的问题以及解决办法.当然有些东西 ...