SpringBoot 2.0 +jdbc方式实现MySQL增删改查

Spring-Data-JPA
JPA定义了一系列对象持久化的标准,也就是一种文本规范

新建一个类用来建立数据库的表的时候使用@Entity这个注解,表示这个类适合数据库有关的类
这个注解来自Spring-Data-JPA

@Id  
@GeneratedValue
这两个注解实现的是一个自增的Id,就是将ID++;

首先引入数据库的依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

那怎么来操作数据库:
首先在yml文件中的操作:
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dbSpringBootFirstDemo?useSSL=true
    username: root
    password: 123456
jpa:
    hibernate:
      ddl-auto: update
    show-sql: true            
ddl-auto:  update和ddl-auto:  create的区别就是使用update数据库表的内容不会发生,只会更新,然后是create是重新新建一个表,当你的表存在时会先删除然后新建
 建立完之后没有任何变化
然后新建一个类,用来操作数据库
代码如下:
package com.wilson.demo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class dbFirstSpringBootDemo {

    @Id
    @GeneratedValue
    private Integer Length;

    private String Word;
    private String Type;

    public dbFirstSpringBootDemo(){
    }

    public Integer getLength() {
        return Length;
    }

    public String getWord() {
        return Word;
    }

    public String getType() {
        return Type;
    }

    public void setLength(Integer length) {
        Length = length;
    }

    public void setWord(String word) {
        Word = word;
    }

    public void setType(String type) {
        Type = type;
    }
}
主要是注解的使用,新建完成之后就完成了数据库中表的内容的建立,会出现三个新的项:Length;Word;Type;

然后在数据库中将填写内容,之后
新建一个类,这个类就是沟通数据库的
package com.wilson.demo;

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

public interface textRepository extends JpaRepository<dbFirstSpringBootDemo, Integer>{

}
然后再建一个类
package com.wilson.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class textController {

    @Autowired
    private textRepository tController;

/**
* 查询数据库列表
* @return
*/
    @GetMapping(value = "/words")
    public List<dbFirstSpringBootDemo> wordsList(){
           return tController.findAll();
    }
这个类就把数据库中的数据传递了
//查询一个单词
@GetMapping(value = "/words/{Length}")
public dbFirstSpringBootDemo WordFindOne(@PathVariable("Length") Integer Length){
    return tController.findById(Length).get();
}

//更新
@PutMapping(value = "/words/{Length}")
public dbFirstSpringBootDemo WordUpdate(@PathVariable("Length") Integer Length,
@RequestParam("Type") String Type,
@RequestParam("Word") String Word){

dbFirstSpringBootDemo dbFSBDemo = new dbFirstSpringBootDemo();
dbFSBDemo.setLength(Length);
dbFSBDemo.setType(Type);
dbFSBDemo.setWord(Word);

return tController.save(dbFSBDemo);

}
//根据长度删除一个单词
@DeleteMapping(value = "/words/{Length}")
public void deleteWord(@PathVariable("Length") Integer Length){
    tController.deleteById(Length);
}
这些就是照葫芦画瓢,实现数据库的跟新,查找,删除

使用事物可以在同时操作多条数据的时候实现某些功能
例如:
package com.wilson.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;

@Service
public class textService{
    @Autowired
    private textRepository ttController;

    @Transactional                      //实现的是当dbFSBD1或者dbFSBD2不符合数据库的插入规则的时候,两条数据都不能插入
    public void insetTwo(){
        dbFirstSpringBootDemo dbFSBD1 = new dbFirstSpringBootDemo();
        dbFSBD1.setWord("Qwer");
        dbFSBD1.setType("Q");
        ttController.save(dbFSBD1);

        dbFirstSpringBootDemo dbFSBD2 = new dbFirstSpringBootDemo();
        dbFSBD2.setWord("Aqwer");
        dbFSBD2.setType("A");
        ttController.save(dbFSBD2);

    }
}



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页