转载自:https://www.cnblogs.com/juncaoit/p/7789034.html

springBoot的数据库操作

一:操作数据库起步

1.Spring-Data-Jpa

  JPA定义了对象持久化的标准。

  目前实现了有Hibernate,TopLink

2.pom添加依赖

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

3.对jps进行配置

spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3308/people?useSSL=false
username: root
password: 123456
jpa:
hibernate:
ddl-auto: create
show-sql: true

4.新建一个people的数据库

  CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  不然,程序会报未发现数据库。

  但是,表不需要新建,这个通过类就可以生成。

5.student的类

  可以映射成数据库的字段。

  Entity注解表示:类对应一个数据库的一个表。

 package com.aspirant.springboot;

 import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id; @Entity
public class Student { @Id
@GeneratedValue
private Integer id;
private String name;
private Integer age; public Student(){ } 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 Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
}
}

6.自动生成数据库

7.注意点

  配置文件的ddi-auto:create

  意思的每次启动的时候都会把数据库清空。

  

  ddl-auto:update

  如果没有表,会自动创建,但是如果里面有数据,就不会清空数据。

二:操作数据的API

1.新建类(继续使用上面的Student.java类)

2.新建接口

 package com.aspirant.springboot;

 import org.springframework.data.jpa.repository.JpaRepository;

 public interface StudentResitory extends JpaRepository<Student,Integer> {

 }

3.新建controller类  

查询数据库中的所有
 package com.aspirant.springboot;

 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController
public class StudentController { @Autowired
private StudentResitory studentResitory; /**
* 查询数据库中的所有
* @return
*/
@GetMapping(value = "/hello")
public List<Student> getStuList(){
return studentResitory.findAll();
}
}

4.效果

5.添加一个学生记录

/**
* 添加一个学生记录
*/
@PostMapping(value = "/hello")
public Student addStu(@RequestParam("name") String name,@RequestParam("age") Integer age){
Student stu=new Student();
stu.setName(name);
stu.setAge(age);
return studentResitory.save(stu);
}

6.查询一个人,根据id

 /**
* 查询一个学生,根据字段id
*/
@GetMapping(value = "/hello/{id}")
public Student getStu(@PathVariable("id") Integer id){
return studentResitory.findOne(id);
}

7.更新

 /**
* 更新数据库
*/
@PutMapping(value = "/hello/{id}")
public Student updateStu(@PathVariable("id") Integer id,
@RequestParam("name") String name,
@RequestParam("age") Integer age ){
Student stu=new Student();
stu.setId(id);
stu.setName(name);
stu.setAge(age);
return studentResitory.save(stu);
}

8.删除

 /**
* 删除数据
*/
@DeleteMapping(value = "/hello/{id}")
public void deleteStu(@PathVariable("id") Integer id){
studentResitory.delete(id);
}

三:扩展

1.通过年龄还来查询

2.扩展接口

 package com.aspirant.springboot;

 import org.springframework.data.jpa.repository.JpaRepository;

 import java.util.List;

 public interface StudentResitory extends JpaRepository<Student,Integer> {

     //根据年龄来查询数据
public List<Student> findByAge(Integer age);
}

3.程序

 /**
* 根据年龄进行查询
*/
@GetMapping(value = "/hello/age/{age}")
public List<Student> getStuList(@PathVariable("age") Integer age){
return studentResitory.findByAge(age);
}

[转] Springboot的数据库操作的更多相关文章

  1. 【SpringBoot】数据库操作之整合Mybaties和事务讲解

    ========================8.数据库操作之整合Mybaties和事务讲解 ================================ 1.SpringBoot2.x持久化数 ...

  2. springBoot的数据库操作

    一:操作数据库起步 1.Spring-Data-Jpa JPA定义了对象持久化的标准. 目前实现了有Hibernate,TopLink 2.pom添加依赖 <dependency> < ...

  3. 利用IDEA构建springboot应用-数据库操作(Mysql)

    Spring-Date-Jpa 定义了一系列对象持久化的标准 例如Hibernate,TopLink等   spring data jpa让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来 ...

  4. springboot学习-springboot使用spring-data-jpa操作MySQL数据库

    我们在上一篇搭建了一个简单的springboot应用,这一篇将介绍使用spring-data-jpa操作数据库. 新建一个MySQL数据库,这里数据库名为springboot,建立user_info数 ...

  5. springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务

    springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...

  6. SpringBoot中使用spring-data-jpa 数据库操作(上)

    Java客户端使用Spring-Data-Jpa这个组件. Spring-Data-Jpa就是Spring对Hibernate的一个整合. 选择create在运行的时候它会自动帮我们创建一个表. sp ...

  7. Spring Boot快速入门(四):使用jpa进行数据库操作

    原文地址:https://lierabbit.cn/articles/5 添加依赖 新建项目选择web,JPA,MySQL三个依赖 对于已存在的项目可以在bulid.gradle加入,spring b ...

  8. 补习系列(16)-springboot mongodb 数据库应用技巧

    目录 一.关于 MongoDB 二.Spring-Data-Mongo 三.整合 MongoDB CRUD A. 引入框架 B. 数据库配置 C. 数据模型 D. 数据操作 E. 自定义操作 四.高级 ...

  9. SpringBoot02 Controller的使用、数据库操作、事物管理、修改banner

    1 Controller的使用 特点:编程技巧和SpringMVC几乎完全一样 注意:@RestController = @Controller + @ResponseBody 注意:读取路径参数和请 ...

随机推荐

  1. C# 结构与类的区别

    一.定义方式 定义结构: struct PointStruct //默认的访问权限是 public { public int X { get; set; } public int Y { get; s ...

  2. python(列表2)

    1.remove(删除指定值的元素) x = ['to','be','or','not','to','be'] x.remove('be') x ['to','or','not','to','be'] ...

  3. CSS3-3

    关于背景 一. 渐变&径向渐变(background-image: -webkit-linear-gradient() && background-image: -webkit ...

  4. python修炼第一天

    Python修炼第一天 新的开始:不会Python的运维,人生是不完整的. 为了我的人生能够完整,所以我来了!今后跟着太白金星师傅学习功夫,记录一下心得,以便日后苦练. 一 Python的历史: Py ...

  5. Excel关联xml文件

    1.新建没传值的xml文件,变量名称自己定义好 2.打开excel,如果之前没有设置过,点击选项 如果当前Excel菜单栏中没有开发工具项,在自定义功能区先勾选上开发选项 3.点右下角的xml映射 弹 ...

  6. Android Touch事件相关源码【Android SourceCode 2.3.6】

    2018-05-31 17:23:46 Note: 这里的源码来自Android 2.3.6,这个版本的代码比较简单,适合理解Touch事件的传递原理.后续版本源码复杂了很多,但是原理都是类似的. 2 ...

  7. swiper使用中一些点的总结

    最近做了PC端改版,要求移动端有更好的体验,一些产品滚屏的展示,就用了swiper插件,以方便用户在移动端访问可以滑动翻屏展示. 本次项目中使用的是swiper2.0版本. 首先要引入swiper的j ...

  8. 第一周博客之二---OA项目环境搭建及开发包部署

    OA项目环境搭建 一个项目想要能够在开发人员打包好项目包之后进行测试,就必须进行项目测试环境的搭建,要根据开发工程师的开发环境采用不同的测试环境,以下只是浅谈下Java项目OA(办公自动化平台)的环境 ...

  9. ReactiveCocoa的学习内容

    ReactiveCocoa • 知识备用库:iOS10 collectionView以前是复用的,但是iOS10以后就要设置一个属性才可以复用. • C语言面向过程编程,OC面向对象编程 • 链式编程 ...

  10. boostrap 日期插件(带中文显示)

    不知道大家用什么样的日期插件,我最近用了bootstrap插件,整理了下,分享给大家,第四部分是我找的插件源码,可以省去大家的找的时间,按1-3的步骤用就好了,有些样式上的小问题就自己调一调: (1) ...