• SpringBoot IDEA JPA简易教程


    使用Spring Assistant创建1.5.18jar工程。

    application.yml文件内容

     添加YAML Ansible support插件,文件后缀名yaml。

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

    创建Entity类Girl,会自动生成(更新)数据库中的表,名称就是girl

    全部

    package com.example;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    
    @Entity
    public class Girl {
        @Id
        @GeneratedValue
        private Integer id;
        private String cupSize;
        private Integer age;
    
        public Girl() {
        }
    
        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;
        }
    }
    Girl类

    创建接口GirlRepository

    public interface GirlRepository extends JpaRepository<Girl,Integer> {
        //lookup by age
        public List<Girl> findByAge(Integer age);
    }
    GirlRepository

     Controller中使用GirlRepository对象来增删改查

    package com.example;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    
    @RestController
    public class GirlController {
        @Autowired
        private GirlRepository girlRepository;
    
    
        @Autowired
        private GirlService girlService;
    
        //查询所有girl
        @GetMapping("/girls")
        public List<Girl> girlList() {
            return girlRepository.findAll();
        }
        //增加一个girl
        @GetMapping("/add")
        public Girl girlAdd(@RequestParam("cupSize") String cupSize,
                              @RequestParam("age") Integer age) {
            Girl girl=new Girl();
            girl.setAge(age);
            girl.setCupSize(cupSize);
            return girlRepository.save(girl);
        }
        //根据一个id查询girl
        @GetMapping("/girls/{id}")
        public Girl findTheGirl(@PathVariable("id") Integer id) {
            return girlRepository.findOne(id);
        }
        //根据id更新girl
        @GetMapping("/girls/update/{id}")
        public Girl updateTheGirl(@PathVariable("id") Integer id,@RequestParam("age") Integer age,
                                  @RequestParam("cupSize") String cupSize) {
            Girl girl=new Girl();
            girl.setId(id);
            girl.setAge(age);
            girl.setCupSize(cupSize);
    
            return girlRepository.save(girl);
        }
        //根据id删除girl
        @GetMapping("/girls/remove/{id}")
        public void deleteGirl(@PathVariable("id") Integer id) {
            girlRepository.delete(id);
        }
    
        @GetMapping("/girls/age")
        public List<Girl> findByA(@RequestParam("age") Integer age) {
            return girlRepository.findByAge(age);
        }
    
        @GetMapping("girls/testTrans")
        public void testTrans() {
            girlService.insertTwo();
        }
    }
    controller类内容

     使用事务

    业务类中的方法加上@Transactional即可

    @Service
    public class GirlService {
    
        @Autowired
        private GirlRepository girlRepository;
        @Transactional
        public void insertTwo() {
            Girl girlA=new Girl();
            girlA.setCupSize("F");
            girlA.setAge(17);
            girlRepository.save(girlA);
    
            int a=3/0;//发生异常,前面的数据库操作无效
    
            Girl girlB=new Girl();
            girlB.setAge(22);
            girlB.setCupSize("B");
            girlRepository.save(girlB);
        }
    }
  • 相关阅读:
    配置Nginx和Apache允许指定域名CORS跨域访问
    当遇到npm ERR! Unexpected end of JSON input while parsing near……时的解决办法
    基于thinkphp开发的项目部署到由宝塔面板创建的LNMP服务器上解决路径出错问题
    在ThinkPHP框架(5.0.24)下引入Ueditor并实现向七牛云对象存储上传图片同时将图片信息保存到MySQL数据库,同时实现lazyload懒加载
    为Sublime Text 3设置优雅的字体
    windows7x64系统中配置mysql5.7.17为本地开发环境(win2008类似)
    SQL Server实现数据的递归查询
    在.net程序中使用System.Net.Mail来发送邮件
    在 Ubuntu 13.10 中搭建Java开发环境
    Windows 系统下载安装 ZooKeeper
  • 原文地址:https://www.cnblogs.com/legion/p/10059248.html
Copyright © 2020-2023  润新知