博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
001 springBoot的数据库操作
阅读量:4343 次
发布时间:2019-06-07

本文共 4442 字,大约阅读时间需要 14 分钟。

  这篇文章的数据库操作方式是使用JPA。

  而且是简单的说明,更多的介绍,在本标签下,后续会再说明一些细节。

一:操作数据库起步

1.Spring-Data-Jpa

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

  目前实现了有Hibernate,TopLink

 

2.pom添加依赖

1         
2
org.springframework.boot
3
spring-boot-starter-data-jpa
4
5 6
7
mysql
8
mysql-connector-java
9

 

3.对jps进行配置

1 spring: 2   profiles: 3     active: dev 4   datasource: 5     driver-class-name: com.mysql.jdbc.Driver 6     url: jdbc:mysql://127.0.0.1:3308/people?useSSL=false 7     username: root 8     password: 123456 9   jpa:10     hibernate:11       ddl-auto: create12     show-sql: true

 

4.新建一个people的数据库

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

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

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

 

5.student的类

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

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

1 package com.caojun.springboot; 2  3 import javax.persistence.Entity; 4 import javax.persistence.GeneratedValue; 5 import javax.persistence.Id; 6  7 @Entity 8 public class Student { 9 10     @Id11     @GeneratedValue12     private Integer id;13     private String name;14     private Integer age;15 16     public Student(){17 18     }19 20     public Integer getId() {21         return id;22     }23 24     public void setId(Integer id) {25         this.id = id;26     }27 28     public String getName() {29         return name;30     }31 32     public void setName(String name) {33         this.name = name;34     }35 36     public Integer getAge() {37         return age;38     }39 40     public void setAge(Integer age) {41         this.age = age;42     }43 }

 

6.自动生成数据库

  

 

7.注意点

  配置文件的ddi-auto:create

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

  

  ddl-auto:update

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

 

二:操作数据的API

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

 

2.新建接口

1 package com.caojun.springboot;2 3 import org.springframework.data.jpa.repository.JpaRepository;4 5 public interface StudentResitory extends JpaRepository
{6 }

 

3.新建controller类  

查询数据库中的所有
1 package com.caojun.springboot; 2  3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.web.bind.annotation.GetMapping; 5 import org.springframework.web.bind.annotation.RestController; 6  7 import java.util.List; 8  9 @RestController10 public class StudentController {11 12     @Autowired13     private StudentResitory studentResitory;14 15     /**16      * 查询数据库中的所有17      * @return18      */19     @GetMapping(value = "/hello")20     public List
getStuList(){21 return studentResitory.findAll();22 }23 }

 

4.效果

  

 

5.添加一个学生记录

1     /** 2      * 添加一个学生记录 3      */ 4     @PostMapping(value = "/hello") 5     public Student addStu(@RequestParam("name") String name,@RequestParam("age") Integer age){ 6         Student stu=new Student(); 7         stu.setName(name); 8         stu.setAge(age); 9         return studentResitory.save(stu);10     }

 

6.效果

  

  

 

7.查询一个人,根据id

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

 

8.效果

  

 

 

9.更新

1 /** 2      * 更新数据库 3      */ 4     @PutMapping(value = "/hello/{id}") 5     public Student updateStu(@PathVariable("id") Integer id, 6                              @RequestParam("name") String name, 7                              @RequestParam("age") Integer age ){ 8         Student stu=new Student(); 9         stu.setId(id);10         stu.setName(name);11         stu.setAge(age);12         return studentResitory.save(stu);13     }

 

10.效果

  

 

 

11.删除

1 /**2      * 删除数据3      */4     @DeleteMapping(value = "/hello/{id}")5     public void deleteStu(@PathVariable("id") Integer id){6         studentResitory.delete(id);7     }

 

12.效果

  

  

 

三:扩展

1.通过年龄还来查询

 

2.扩展接口

  这个方法名比较有讲究。

1 package com.caojun.springboot; 2  3 import org.springframework.data.jpa.repository.JpaRepository; 4  5 import java.util.List; 6  7 public interface StudentResitory extends JpaRepository
{ 8 9 //根据年龄来查询数据10 public List
findByAge(Integer age);11 }

 

3.程序

1 /**2      * 根据年龄进行查询3      */4     @GetMapping(value = "/hello/age/{age}")5     public List
getStuList(@PathVariable("age") Integer age){6 return studentResitory.findByAge(age);7 }

 

4.效果

  

 

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

你可能感兴趣的文章
tensorflow学习笔记(二)
查看>>
HttpModule Url 重写
查看>>
关于CKEditor 4.0 过滤html标签
查看>>
java编程经典语录
查看>>
豆瓣小站维护:【代码review】数据结构与算法分析(C++) 1.3题
查看>>
Java虚拟机监控命令
查看>>
1. Hello World - WebService based on Spring
查看>>
IntelliJ IDEA设置统一编码utf-8
查看>>
…… are only available on JDK 1.5 and higher 错误(spring 的jdk版本检测在jdk 8下的修订)...
查看>>
分布式缓存小结
查看>>
uva 437 hdu 1069
查看>>
Leetcode 609: Find Duplicate File in System
查看>>
javascript 高级程序设计 重点
查看>>
python第二十八天,(元类,异常处理,)
查看>>
翰思博客
查看>>
【我的学习笔记】汇总
查看>>
漫谈可视化Prefuse(六)
查看>>
转:如何提高测试用例设计的测试覆盖率
查看>>
JAVA大作业汇总2
查看>>
IIR滤波器设计(调用MATLAB IIR函数来实现)(转)
查看>>