[转] Springboot的数据库操作

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

springBoot的数据库操作

一:操作数据库起步

1.Spring-Data-Jpa

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

  目前实现了有Hibernate,TopLink

2.pom添加依赖

1 <dependency>
2      <groupId>org.springframework.boot</groupId>
3      <artifactId>spring-boot-starter-data-jpa</artifactId>
4 </dependency>
5 
6 <dependency>
7      <groupId>mysql</groupId>
8      <artifactId>mysql-connector-java</artifactId>
9 </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注解表示:类对应一个数据库的一个表。

 1 package com.aspirant.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     @Id
11     @GeneratedValue
12     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.aspirant.springboot;
2  
3 import org.springframework.data.jpa.repository.JpaRepository;
4 
5 public interface StudentResitory extends JpaRepository<Student,Integer> {
6 
7 }

3.新建controller类  

查询数据库中的所有
 1 package com.aspirant.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 @RestController
10 public class StudentController {
11 
12     @Autowired
13     private StudentResitory studentResitory;
14 
15     /**
16      * 查询数据库中的所有
17      * @return
18      */
19     @GetMapping(value = "/hello")
20     public List<Student> getStuList(){
21         return studentResitory.findAll();
22     }
23 }

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

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

7.更新

 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     }

8.删除

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

三:扩展

1.通过年龄还来查询

 

2.扩展接口

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

 

3.程序

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

 

转载于:https://www.cnblogs.com/Asp1rant/p/10626467.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值