spring boot数据库操作(以mysql为例)

  • 添加数据库支持

    在maven中添加组件(pom.xml)

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

  • 配置datasource和jpa(application.yml)

    为mysql和jpa添加配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dbGirl
    username: root
    password: 123456
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

注:jpa配置中ddl-auto有多种选择
这里写图片描述

create应用启动即清空数据库所有表重新创建
create-drop应用停止时就会删掉所有表
none默认不执行任何操作
update第一次运行创建表结构,与create不同点在于不会删除原有数据
validate验证类属性是否与表结构一致,不一致会报错

  • 创建java bean类,为类添加@Entity注解
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Girl {

    @Id  //将id设为主键
    @GeneratedValue //设置Id自增长
    private Integer id ;

    private String name ;

    private Integer age ;
    public Girl() {
    };

    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;
    }
}

注意包不要导错,包不要导错,包不要导错~


  • 创建对应接口继承JpaRepository
import org.springframework.data.jpa.repository.JpaRepository;

//<Girl,Integer>,第一个为需要操作的bean类,第二个参数为bean类中的Id类型,即对应数据库表中的主键类型
public interface GirlRepository extends JpaRepository<Girl,Integer> {
}

  • 在Controller中创建实例,通过Jpa调用操作数据库方法。
@RestController
public class GirlController {

    @Autowired
    private GirlRepository girlRepository;

    //通过get方法查询女生列表
    @GetMapping(value = "/girls")
    public List<Girl> girls(){
        return girlRepository.findAll();
    }

    //通过post方法添加女生列表
    @PostMapping(value = "/girls")
    public Girl girls(@RequestParam("name") String name,@RequestParam("age") Integer age){
        Girl girl = new Girl();
        girl.setAge(age);
        girl.setName(name);
        return girlRepository.save(girl);
    }
}

此外事务管理通过在函数上添加@Transactional注解

@Autowired
    private GirlRepository girlRepository;

    @Transactional
    public void saveTwo(){
        Girl girlA = new Girl();
        girlA.setName("星星");
        girlA.setAge( 12 );
        girlRepository.save(girlA);

        Girl girlB = new Girl();
        girlB.setName("The Apple");
        girlB.setAge( 11 );
        girlRepository.save(girlB);
    }

PS:post方法可以通过下载安装Postman进行测试,很不错的工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值