博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot IDEA JPA简易教程
阅读量:5281 次
发布时间:2019-06-14

本文共 3408 字,大约阅读时间需要 11 分钟。

 

使用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;@Entitypublic 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
{ //lookup by age public List
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;@RestControllerpublic class GirlController {    @Autowired    private GirlRepository girlRepository;    @Autowired    private GirlService girlService;    //查询所有girl    @GetMapping("/girls")    public List
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
findByA(@RequestParam("age") Integer age) { return girlRepository.findByAge(age); } @GetMapping("girls/testTrans") public void testTrans() { girlService.insertTwo(); }}
controller类内容

 

 使用事务

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

@Servicepublic 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);    }}

 

转载于:https://www.cnblogs.com/legion/p/10059248.html

你可能感兴趣的文章
HDU 2067 小兔的棋盘
查看>>
HDU 1713 相遇周期
查看>>
淘宝质量属性场景分析
查看>>
MSYS2更换软件源
查看>>
一步步学习javascript基础篇(4):面向对象设计之创建对象(工厂、原型和构造函数等模式)...
查看>>
python,在已有的文件夹下创建新的时间文件夹。
查看>>
zz视频原理
查看>>
真彩色制式下IplImage转成CBitmap格式
查看>>
CSS圆环百分比DEMO
查看>>
【可视化】可视化概况(一)
查看>>
Zigbee协议栈--Z-Stack的使用
查看>>
进程的执行状态
查看>>
tensorflow 高级API的区别与联系
查看>>
[原创]HBase学习笔记(1)- 安装和部署
查看>>
436. Find Right Interval
查看>>
Vue 不睡觉教程3 - 来点实在的:自动计算剩余时间的任务列表
查看>>
游戏服务器端开发的基本大纲
查看>>
ios cocos2d 使用 sneakyInput 插件
查看>>
第六周作业
查看>>
[leedcode 214] Shortest Palindrome
查看>>