Springboot入门学习笔记(二)

Springboot入门学习笔记(二)

与数据库的使用
  • 首先在maven里加入相关的jpa的依赖

    ~~~xml

    org.springframework.boot
    spring-boot-starter-data-jpa

    ~~~

  • 在yml里配置


  spring:
    profiles:
      active: dev

    datasource:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/dbgirl
      password: ok
      username: root

    jpa:
      hibernate:
        ddl-auto: update
      show-sql: true

datasource里是数据库信息,这里用的mysql。

jpa里是对jpa实现的一些配置

  • 新建一个与数据库表对应的类。(数据库无需建表)

  @Entity
  public class Girl {

    @Id
    @GeneratedValue
    private Integer id;

    private String cupSize;

    private Integer age;

    public Integer getId() {
      return id;
    }

    public void setId(Integer id) {
      this.id = id;
    }

    public String getCupSize() {
      return cupSize;
    }

    public void setCupSize(String cupSize) {
      this.cupSize = cupSize;
    }

    public Integer getAge() {
      return age;
    }

    public void setAge(Integer age) {
      this.age = age;
    }

    public Girl() {}
  }

  • @Entity注释是指此类是数据库表对应的。@Id代表主键,
    @GeneratedValue代表自增长。
  • 类名对应数据库表名,属性对应数据库列。
  • 必须要有getset和无参构造器

    • 相关的增删改查
  • 查所有

    先建一个Repository接口

 public interface GirlRepository extends JpaRepository<Girl,Integer> {
    }
+ 继承`JpaRepository<Girl,Integer>`,泛型里面前面是数据库表对应类,后面是类id类型。

再建一个controller类
 @RestController
    public class GirlController {

      @Autowired
      private GirlRepository girlRepository;

      @GetMapping(value = "/girls")
      public List<Girl> girls(){
          return girlRepository.findAll();
      }
    }
+ findAll()里面包含了查所有的一套sql。不需要写sql
  • 增加一个

    在controller层继续添加

      @PostMapping(value = "/addgirl")
      public Girl girlAdd(@RequestParam("cupSize") String cupSize, @RequestParam("age") Integer age){
        Girl girl = new Girl();
        girl.setCupSize(cupSize);
        girl.setAge(age);
        return girlRepository.save(girl);
      }
  • 查询一个

    根据id查询。

      @GetMapping(value = "/girls/{id}")
      public Girl girlFindOne(@PathVariable("id") Integer id){
        return girlRepository.findOne(id);
      }
根据属性条件查询。

这里需要自己在之前的接口里增加方法
    public interface GirlRepository extends JpaRepository<Girl,Integer> {
      public List<Girl> findByAge(Integer age);
    }
+ 注意这里的方法名一定要是findBy+属性的格式!

然后继续在controller里增加
      @GetMapping(value = "/girls/age/{age}")
      public List<Girl> girlListByAge(@PathVariable("age") Integer age){
        return girlRepository.findByAge(age);
      }
  • 更新

    依旧在controller层

      @PutMapping(value = "/girls/{id}")
      public void girlUpdate(@PathVariable("id") Integer id,@RequestParam("cupSize") String cupSize,@RequestParam("age") Integer age){
        Girl girl = new Girl();
        girl.setId(id);
        girl.setCupSize(cupSize);
        girl.setAge(age);
        girlRepository.save(girl);
      }
+ 注意这是前台像后台传数据的时候,不能用form-data ,而是要用x-www-form-urlencoded
  • 删除
      @DeleteMapping(value = "/girls/{id}")
      public void girlDelete(@PathVariable("id") Integer id) {
        girlRepository.delete(id);
      }
  • 事物

    如果severce层一个方法里有两条sql语句,需要达到事物效果,可以在方式上加@transactional 来实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值