文档章节

springboot系列九 Spring-Data-JDBC

yimingkeji
 yimingkeji
发布于 2018/12/03 16:37
字数 365
阅读 206
收藏 2

DEMO

依赖

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
    </dependencies>

配置

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver # mysql8推荐使用cj.jdbc, com.mysql.jdbc.Driver不推荐使用了
    #数据库连接池默认使用 tomcat-jdbc
    tomcat:
      max-idle: 10
      min-idle: 1
      initial-size: 1

实体

@Data
public class User {
    private int id;
    private String name;
    private int age;
    private String phoneNumber;
    private boolean available;
    private Date createTime = new Date();
}

使用jdbc

@RestController
@RequestMapping("/user")
public class UserResource {

    @Autowired private JdbcTemplate jdbcTemplate;

    @GetMapping("")
    public List list(){
        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from user");
        return list;
    }

    @PostMapping("")
    public User add(@RequestBody User user){
        String sql = "insert into user(name,age) values(?, ?)";
        jdbcTemplate.update(connection -> {
            PreparedStatement ps= connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            ps.setString(1,user.getName());
            ps.setInt(2,user.getAge());
            return ps;
        });
        return user;
    }
}

测试

当前数据库数据:

查询

GET http://localhost:8080/user

返回

[
    {
        "id": 1,
        "name": "张三",
        "phone_number": "15500000001",
        "create_time": "2018-12-02T12:20:32.000+0000",
        "age": 20,
        "available": false
    },
    {
        "id": 2,
        "name": "李四",
        "phone_number": "15500000002",
        "create_time": "2018-12-01T13:04:56.000+0000",
        "age": 0,
        "available": false
    },
    {
        "id": 3,
        "name": "王五",
        "phone_number": "15500000003",
        "create_time": "2018-12-01T13:05:02.000+0000",
        "age": 0,
        "available": false
    }
]

添加

POST http://localhost:8080/user

请求数据:

{
	"name":"add1",
	"age":100
}

再次查询GET http://localhost:8080/user返回:

[
    {
        "id": 1,
        "name": "张三",
        "phone_number": "15500000001",
        "create_time": "2018-12-02T12:20:32.000+0000",
        "age": 20,
        "available": false
    },
    {
        "id": 2,
        "name": "李四",
        "phone_number": "15500000002",
        "create_time": "2018-12-01T13:04:56.000+0000",
        "age": 0,
        "available": false
    },
    {
        "id": 3,
        "name": "王五",
        "phone_number": "15500000003",
        "create_time": "2018-12-01T13:05:02.000+0000",
        "age": 0,
        "available": false
    },
    {
        "id": 6,
        "name": "add1", #新加的数据
        "phone_number": "1001",
        "create_time": "2018-12-03T08:27:46.000+0000",
        "age": 100,
        "available": false
    }
]

项目源码

https://gitee.com/yimingkeji/springboot/tree/master/jdbc

© 著作权归作者所有

yimingkeji
粉丝 14
博文 47
码字总数 30840
作品 0
杭州
私信 提问
Spring Boot学习笔记

多模块开发 [SpringBoot学习]-IDEA创建Gradle多Module结构的SpringBoot项目 RabbitMQ RabbitMQ 安装 linux安装RabbitMQ详细教程 Ubuntu 16.04 RabbitMq 安装与运行(安装篇) ubantu安装...

OSC_fly
2018/07/26
0
0
SpringBoot 入门实例

SpringBoot 是由 pivotal 提供的 Java 开发框架,伴随着 spring 4.0 版本一起发布,旨在简化 Spring 项目的初始化及开发过程,框架本身为开发过程提供了大量的默认配置,当然我们也可以通过简...

Aotian
2018/05/29
0
0
SpringBoot系列教程web篇之全局异常处理

当我们的后端应用出现异常时,通常会将异常状况包装之后再返回给调用方或者前端,在实际的项目中,不可能对每一个地方都做好异常处理,再优雅的代码也可能抛出异常,那么在 Spring 项目中,可...

小灰灰Blog
10/11
42
0
SpringBoot|第一章:第一个SpringBoot 应用

springboot简单介绍 概述 随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。 在上述...

Java架构解析
2018/08/18
0
0
实战|如何自定义SpringBoot Starter?

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车! SpringBoot自动化配置源码分析从源...

后端进阶
05/11
132
0

没有更多内容

加载失败,请刷新页面

加载更多

爬虫可以采集哪些数据?爬虫借用什么代理可以提高效率

学习爬虫的门槛非常低,特别是通过Python学习爬虫,即使是网上也能找到许多学习爬虫的方法,而且爬虫在数据采集方面效果比较好,比如可以采集几万、上百万网页数据进行分析,带来极有价值的数...

xiaotaomi
26分钟前
4
0
redis自建笔记

自建redis笔记 最近在linux安装了一下redis,特做一些笔记! 本文先单节点启动redis,然后再进行持久化配置,在次基础上,再分享搭建主从模式的配置以及Sentinel 哨兵模式及集群的搭建 单节点...

北极之北
28分钟前
4
0
没想到Spring Boot居然这么耗内存,有点惊讶

Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞...

程序员修BUG
32分钟前
4
0
Spring Security 实战干货:Spring Boot 中的 Spring Security 自动配置初探

1. 前言 我们在前几篇对 Spring Security 的用户信息管理机制,密码机制进行了探讨。我们发现 Spring Security Starter相关的 Servlet 自动配置都在spring-boot-autoconfigure-2.1.9.RELEASE...

码农小胖哥
33分钟前
4
0
Docker 容器时区时间不一致 问题解决

解决方案: 1,最傻瓜也最方便的处理方式,运行新的容器前设置本机时区和时间文件与容器的映射 docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime ...1 -v /etc/...

突突突酱
35分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部