关键词:
一、整合Mybatis
1、配置Mybatis
(1)配置启动器
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
(2)配置驼峰和别名包
# 配置驼峰
mybatis:
configuration:
map-underscore-to-camel-case: true
type-aliases-package: com.itzheng.pojo #配置别名包
#mapper-locations: mapper/*.xml
(3)配置mapper扫描器
package com.itzheng;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.itzheng.mapper")
public class BootDemoApplication
public static void main(String[] args)
SpringApplication.run(BootDemoApplication.class,args);
二、通用Mapper整合
1、引入依赖
(1)在pom.xml当中
<!--通用Mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
(2)引入的通用Mapper有一些配置就不需要了
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itzheng.demo</groupId>
<artifactId>springboot-demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.0.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--通用Mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
</project>
(3)驼峰也会默认开启,所以也不需要配置了
全部
server:
port: 8088
servlet:
path: /
logging:
level:
com.itzheng: debug
#org.springframework: debug
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/itzheng
username: root
password: root
mybatis:
type-aliases-package: com.itzheng.pojo #配置别名包
#mapper-locations: mapper/*.xml
(4)启动类BootDemoApplication改变扫描包通过tk.mybatis.mapper扫描
package com.itzheng;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@MapperScan("com.itzheng.mapper")
public class BootDemoApplication
public static void main(String[] args)
SpringApplication.run(BootDemoApplication.class,args);
2、创建UserMapper接口并继承Mapper会自动具备一系列的对数据的方法
package com.itzheng.mapper;
import com.itzheng.pojo.User;
import tk.mybatis.mapper.common.Mapper;
public interface UserMapper extends Mapper<User>
3、在对应的实体类上添加注解实现SQL语句的自动生成
package com.itzheng.pojo;
import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
@Data
@Table(name="tb_user")
public class User
//id
@Id
@KeySql(useGeneratedKeys = true) //useGeneratedKeys主键自增
private Long id;
//用户名
private String userName;
//密码
private String password;
//姓名
private String name;
//年龄
private Integer age;
//性别 1、男性 2、女性
private Integer sex;
//出生日期
private Date birthday;
//创建时间
private Date created;
//更新时间
private Date updated;
//备注
private String note;
@Transient //Transient当前属性不是要生成SQL的的属性
private int aaaa;
4、测试
(1)在pom.xml当中引入test
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
(2)创建测试类UserMapperTest
package com.itzheng.mapper;
import com.itzheng.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest
@Autowired
private UserMapper userMapper;
@Test
public void testQuery()
User user = userMapper.selectByPrimaryKey(8L);
System.out.println("User = " +user);
数据库当中添加一些数据
INSERT INTO `tb_user` VALUES ('19', 'zhangsan', '123', 'zhangsan123', '12', '1', '2021-06-14', '1', '2021-06-29 18:21:50', '2021-06-30 18:21:53');
运行测试类
查询的结果
三、业务层整合
1、创建UserService
package com.itzheng.service;
import com.itzheng.mapper.UserMapper;
import com.itzheng.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class UserService
@Autowired
private UserMapper userMapper;//注入usermapper接口
//根据id查询的方法
public User queryById(Long id)
return userMapper.selectByPrimaryKey(id);
//插入数据的方法
@Transactional //添加事务
public void insertUser(User user)
userMapper.insert(user);
2、运行测试,
(1)修改HelloController
package com.itzheng.web;
import com.itzheng.pojo.User;
import com.itzheng.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("user")
public class HelloController
@Autowired
private UserService userService;
@GetMapping("id")
public User hello(@PathVariable("id") Long id)
return userService.queryById(id);
(2)运行项目
访问路径http://localhost:8088/user/1
1号
"id":1,
"userName":"zhangsan",
"password":"123",
"name":"zhangsan123",
"age":12,
"sex":1,
"birthday":"2021-06-13T16:00:00.000+0000",
"created":"2021-06-29T10:21:50.000+0000",
"updated":"2021-06-30T10:21:53.000+0000",
"note":null
2号
项目全部代码
https://download.csdn.net/download/qq_44757034/19894410
java微服务day02源代码springboot实战开发整合jdbc和事务(数据库连接池)(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day02源代码springboot实战开发创建相关数据库,搭建服务,搭建普通工程,设置访问后缀以及端口号(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day01源代码springboot的springmvc快速入门(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day02源代码springboot实战开发整合mybatis(数据库连接池),通用mapper整合,业务层整合(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day01源代码java的配置(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务之springcloud快速入门day02feign(代码片段)
Java微服务之SpringCloud快速入门day02(二)Feign一、Feign在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码:StringbaseUrl="http://user-service/user/";Useruser=this.restTemplate.get 查看详情
java微服务之springcloud快速入门day02feign(代码片段)
Java微服务之SpringCloud快速入门day02(二)Feign一、Feign在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码:StringbaseUrl="http://user-service/user/";Useruser=this.restTemplate.get 查看详情
springcloud学习笔记day01(代码片段)
...要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务ÿ... 查看详情
springcloud学习笔记day01(代码片段)
...要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务ÿ... 查看详情
java微服务之springcloud快速入门day02zuul网关,面向服务的路由,zuul过滤器(代码片段)
Java微服务之SpringCloud快速入门day02(三)Zuul网关一、简介1、相关概念官网:https://github.com/Netflix/zuulZuul:维基百科:电影《捉鬼敢死队》中的怪兽,Zuul,在纽约引发了巨大强乱。事实上,在微服务架构中... 查看详情
java微服务之springcloud快速入门day02zuul网关,面向服务的路由,zuul过滤器(代码片段)
Java微服务之SpringCloud快速入门day02(三)Zuul网关一、简介1、相关概念官网:https://github.com/Netflix/zuulZuul:维基百科:电影《捉鬼敢死队》中的怪兽,Zuul,在纽约引发了巨大强乱。事实上,在微服务架构中... 查看详情
java微服务之springcloud快速入门day02hystrix线程隔离,服务降级(代码片段)
Hystrix1、简介Hystrix,英文意思是豪猪,全身都是刺,看起来就不好惹,是一种保护机制。Hystrix也是Netflix公司的一款组件。主页:https://github.com/Netflix/Hystrix那么Hystrix的作用是什么呢?具体要保护什么呢ÿ... 查看详情
java微服务之springcloud快速入门day02hystrix线程隔离,服务降级(代码片段)
Hystrix1、简介Hystrix,英文意思是豪猪,全身都是刺,看起来就不好惹,是一种保护机制。Hystrix也是Netflix公司的一款组件。主页:https://github.com/Netflix/Hystrix那么Hystrix的作用是什么呢?具体要保护什么呢ÿ... 查看详情
java微服务之springcloud快速入门day01eureka注册中心高级部分(集群)(高可用)(代码片段)
...建立的eureka-server服务提供者提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可。本例中就是我 查看详情
java微服务之springcloud快速入门day01eureka注册中心高级部分(集群)(高可用)(代码片段)
...建立的eureka-server服务提供者提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可。本例中就是我 查看详情
java之springcloud微服务搭建网关springcloudgateway微服务网关gateway(第三个阶段)springboot项目实现商品服务器端是调用(代码片段)
...oudGateway微服务网关GateWay(第三个阶段)【二】【SpringBoot项目实现商品服务器端是调用】一、微服务网关GateWay1、Gateway简介(1)简介(2)核心概念二、入门案例1、入门案例(1)创建工程导入依赖&... 查看详情
springcloud学习笔记day01(代码片段)
...要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务ÿ... 查看详情
java微服务之springcloud快速入门day01初始springcloud(代码片段)
一、SpringCloud的简介微服务是一种架构方式,最终肯定需要技术架构去实施。微服务的实现方式很多,但是最火的莫过于SpringCloud了。为什么?后台硬:作为Spring家族的一员,有整个Spring全家桶靠山,背景十分强大。... 查看详情