Spring Boot入门(3)-数据库操作
本文介绍使用 jpa 对数据库进行增删改查。
一、导入依赖
我们使用 mysql 数据库,使用 jpa 规范操作
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
使用 Maven 管理依赖,添加以上两个后,重新 install Maven,然后 Reimport
二、Spring-Data-Jpa 介绍和 RESTful API 设计
1、JPA 介绍
2、RESTful API 设计
请求类型 | 请求路径 | 功能 |
GET | /users | 查询用户列表 |
POST | /users | 添加一个用户 |
GET | /users/id | 根据id查询用户 |
PUT | /users/id | 根据id修改用户 |
DELETE | /users/id | 根据id删除用户 |
三、具体代码
1、实体类 User
- package com.liuyanzhao.blog;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- @Entity
- public class User {
- @Id
- @GeneratedValue
- private Integer id;
- private String name;
- private String gender;
- private Integer age;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
注意:每个属性对应数据表中的一个字段(不需要建表),
其中主键的需要加 @Id 和@GeneratedValue 两个注解
实体类前需要加 @Entity
请确保导入的类没有导错。
2、UserController.java
- package com.liuyanzhao.blog;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- /**
- * @Author 言曌
- * @DATE 2017/10/29 上午10:33
- * @URL http://liuyanzhao.com
- */
- @RestController
- public class UserController {
- @Autowired
- private UserRepository userRepository;
- /**
- * 查询所有用户列表
- * @return
- */
- @GetMapping(value = "/users")
- public List<User> listUser() {
- return userRepository.findAll();
- }
- /**
- * 添加一个用户
- * @param name
- * @param gender
- * @param age
- * @return
- */
- @PostMapping(value = "/users")
- public User insertUser(@RequestParam("name") String name,
- @RequestParam("gender") String gender,
- @RequestParam("age") Integer age) {
- User user = new User();
- user.setName(name);
- user.setGender(gender);
- user.setAge(age);
- return userRepository.save(user);
- }
- /**
- * 查询一个用户
- * @param id
- * @return
- */
- @GetMapping(value = "/users/{id}")
- public User getUser(@PathVariable("id") Integer id) {
- return userRepository.findOne(id);
- }
- /**
- * 更新一个用户
- * @param id
- * @param name
- * @param gender
- * @param age
- * @return
- */
- @PutMapping(value = "/users/{id}")
- public User updateUser(@PathVariable("id") Integer id,
- @RequestParam("name") String name,
- @RequestParam("gender") String gender,
- @RequestParam("age") Integer age) {
- User user = new User();
- user.setId(id);
- user.setName(name);
- user.setGender(gender);
- user.setAge(age);
- return userRepository.save(user);
- }
- /**
- * 删除一个用户
- * @param id
- */
- @DeleteMapping(value = "/users/{id}")
- public void deleteUser(@PathVariable("id") Integer id) {
- userRepository.delete(id);
- }
- /**
- * 根据用户性别查询用户列表
- * @param gender
- * @return
- */
- @GetMapping(value = "/users/gender/{gender}")
- public List<User> listUserByGender(@PathVariable("gender") String gender) {
- return userRepository.findByGender(gender);
- }
- }
3、UserRepository.java
- package com.liuyanzhao.blog;
- import org.springframework.data.jpa.repository.JpaRepository;
- import java.util.List;
- /**
- * @Author 言曌
- * @DATE 2017/10/29 上午10:35
- * @URL http://liuyanzhao.com
- */
- public interface UserRepository extends JpaRepository<User,Integer>{//表名和Id类型
- //根据性别来查询用户
- public List<User> findByGender(String gender);
- }
注意:如果我们想添加其他的方法,可以在 UserRepository里写抽象方法,但是命名规范一定要注意。
4、application.yml
- spring:
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://localhost:3306/springboot
- username: root
- password: 123456
- jpa:
- hibernate:
- ddl-auto: update
- show-sql: true
四、使用Postman工具测试
我们可以使用 Postman 根据来发起 HTTP 请求,就不需要自己写表单验证了。
比如 添加一个用户
获得用户列表
删除一个用户
最后,发现 JPA 是不是用起来很爽呢?赶快来试试吧
Spring Boot入门(3)-数据库操作相关推荐
- Spring Boot实战:数据库操作
From: https://www.cnblogs.com/paddix/p/8178943.html 上篇文章中已经通过一个简单的HelloWorld程序讲解了Spring boot的基本原理和使用 ...
- Spring Boot 入门与实战笔记
**一.**Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 20 ...
- Spring Boot 入门之缓存和 NoSQL 篇(四)
原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com 一.前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降.但是,大多 ...
- Spring boot入门(三):集成AdminLTE(Freemarker),结合generate代码生成器,利用DataTable和PageHelper分页...
Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示 标题 ...
- Spring Boot –无法确定数据库类型NONE的嵌入式数据库驱动程序类
If you are reading this, then I think you have got "Cannot determine embedded database driver c ...
- 动力节点郭鑫Spring Boot入门学习笔记,收藏起来慢慢看
做 Java 开发的,没有人敢小觑 Spring Boot 的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,如果啃不下来,很可能就与大厂失之交 ...
- Spring Boot 入门笔记
一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...
- 史上最全,Spring Boot入门篇总结,收藏起来慢慢看
Spring Boot是Spring家族下的一个全新开发框架,其设计目的主要是用来简化Spring应用的创建及开发过程,它提供了自动配置,starter依赖等特性,从而使开发人员从大量的XML配置中解 ...
- Spring Boot 入门
一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...
- Spring Boot入门(9)网页版计算器
介绍 在写了前八篇Spring Boot项目的介绍文章后,我们已经初步熟悉了利用Spring Boot来做Web应用和数据库的使用方法了,但是这些仅仅是官方介绍的一个例子而已. 本次分享将介绍 ...
最新文章
- 如何用python实现邮箱发送信息
- python函数几个return语句_Python常用函数--return 语句-阿里云开发者社区
- 读书笔记:锋利的JQuery
- php.ini 安全配置
- 字符串转换到double数组
- 如何使用Xilisoft Video Editor将多个视频文件合并到一个文件中?
- aspose.words .net 导出word表
- 图解大数据 | 基于Spark RDD的大数据处理分析
- python爬取百度街景图像
- iOS二维码限制区域识别、扫描动画
- revit二次开发之数据库的使用
- 神州优车黄强元:上云之路“一波三折”,为何最终选择阿里云?
- 国网铅封电表红外通讯采集器是干什么用的?一分钟搞懂
- c语言词典课程设计报告,英汉电子词典C语言课程设计
- 手动绘制logistic回归预测模型校准曲线(Calibration curve)(1)
- 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON12 IPCORE核之FIFO详细教程
- ACT游戏开发记录之地图打包工具
- 广州大学大学物理第十一章 真空中的静电场
- 港科夜闻丨世界年轻大学排名公布,香港科大蝉联榜首
- 建行聚合支付及支付宝二维码开发经验(C语言2)