一.配置文件

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>

application.yml

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

application-dev.yml

 server:
port:
girl:
cupSize: B
age:
active: dev 这句active后面的dev代码加载的是application-dev.yml这个配置.
ddl-auto: update这句ddl-auto后面是的update代表的是更新这个表,如果的create的话,代表删掉原来的表重新建表,配置完这些之后就不需要我们自己建表
,数据库会给我们建好相应的表.

二.代码

Girl.java

  */
@Entity
public class Girl { @Id
@GeneratedValue
private Integer id; @NotBlank(message = "这个字段必传")
private String cupSize; @Min(value = , message = "未成年少女禁止入门")
// @NotNull
// @Max()
// @Length()
private Integer age; @NotNull(message = "金额必传")
private Double money; 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;
} public Double getMoney() {
return money;
} public void setMoney(Double money) {
this.money = money;
}
}
程序是的入口
GirlApplication.java
 @SpringBootApplication
public class GirlApplication { public static void main(String[] args) {
SpringApplication.run(GirlApplication.class, args);
}
}
GirlProperties.java
 @Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties { private String cupSize; private Integer age; 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;
}
}
GirlController.java
 @RestController
public class GirlController { @Autowired
private GirlRepository girlRepository; @Autowired
private GirlService girlService; /**
* 查询所有女生列表
* @return
*/
@GetMapping(value = "/girls")
public List<Girl> girlList() {
return girlRepository.findAll();
} /**
* 添加一个女生
     *
* @return
*/
@PostMapping(value = "/girls")
public Girl girlAdd(@Valid Girl girl, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
} girl.setCupSize(girl.getCupSize());
girl.setAge(girl.getAge()); return girlRepository.save(girl);
} //查询一个女生
@GetMapping(value = "/girls/{id}")
public Girl girlFindOne(@PathVariable("id") Integer id) {
return girlRepository.findOne(id);
} //更新
@PutMapping(value = "/girls/{id}")
public Girl 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); return girlRepository.save(girl);
} //删除
@DeleteMapping(value = "/girls/{id}")
public void girlDelete(@PathVariable("id") Integer id) {
girlRepository.delete(id);
} //通过年龄查询女生列表
@GetMapping(value = "/girls/age/{age}")
public List<Girl> girlListByAge(@PathVariable("age") Integer age) {
return girlRepository.findByAge(age);
} @PostMapping(value = "/girls/two")
public void girlTwo() {
girlService.insertTwo();
}
}
最上面添加女生,这个是通过传入Gril这个参数,通过点出get方法来获取对应的属性值,推荐这个写法.
GirlRepository .java
 public interface GirlRepository extends JpaRepository<Girl, Integer> {

     //通过年龄来查询
public List<Girl> findByAge(Integer age);
}
GirlService.java
 @Service
public class GirlService { @Autowired
private GirlRepository girlRepository; @Transactional
public void insertTwo() {
Girl girlA = new Girl();
girlA.setCupSize("A");
girlA.setAge();
girlRepository.save(girlA); Girl girlB = new Girl();
girlB.setCupSize("BBBB");
girlB.setAge();
girlRepository.save(girlB);
}
}

GirlService.java这个类是用来测试事物管理.
在这个类的某个方法上加上@Transactional这个注解说明这个方法就已经交由springboot事物管理.有事物管理和没有事物管理的区别是:
有事物管理这个方法内有一个操作失败,如这个类的插入操作,有一个插入失败,这个方法内的操作全部失败.
如果没有事物就只有失败的那一个操作失败.
一般用于同时操作多条数据,只有查询的时候不加事物.

												

springboot数据库操作及事物管理操作例子的更多相关文章

  1. SpringBoot02 Controller的使用、数据库操作、事物管理、修改banner

    1 Controller的使用 特点:编程技巧和SpringMVC几乎完全一样 注意:@RestController = @Controller + @ResponseBody 注意:读取路径参数和请 ...

  2. Redis数据库之数据基本管理操作

    了解并掌握各种数据类型的命令操作方式,以及各种数据类型值的操作方式.同时,熟练记忆列表.哈希.集合和有序集合等数据类型的常用操作命令.能根据指令格式完成相应的指令操作. ①string数据类型的练习 ...

  3. springBoot的事物管理

    springBoot的事物管理 1:springBoot 整合单数据源事物: Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务 ...

  4. SpringBoot事物管理器

    一.springboot整合事物管理 springboot默认集成事物,只主要在方法上加上@Transactional即可 二.SpringBoot分布式事物管理 使用springboot+jta+a ...

  5. k8spod资源的基础管理操作

    pod是k8s api中的核心资源类型,它可以定义在json或yaml格式的资源清单中,由资源管理命令进行陈述式或声明式管理.创建时,用户可通过create或apply命令将请求提交到apiserve ...

  6. Spring学习之声明式事物管理

    public List<Student> selectStudent() { Student s = new Student(); s.setName("zhengbin&quo ...

  7. MySQL事物管理

    sql语句对数据库操作构成事物. 事物的特性:ACID •Atomicity(原子性):一个事物要么全都被执行,要么全都不执行,不会存在执行结束在中间环节.如果事物在执行过程中发生异常,则会回滚到事物 ...

  8. SpringBoot使用WebFlux响应式编程操作数据库

    这一篇文章介绍SpringBoot使用WebFlux响应式编程操作MongoDb数据库. 前言 在之前一篇简单介绍了WebFlux响应式编程的操作,我们在来看一下下图,可以看到,在目前的Spring ...

  9. (四)SQL入门 数据库的操作与事务管理

    数据库的操作,有三个最基本的语句,insert插入,update修改,delete删除. 不同的数据库厂商的实现可能不同,所以就不说具体的语法怎么写的了.说语法也没有意义,到处都可以复制粘贴,记得听某 ...

随机推荐

  1. Linux上安装pip以及setuptools

    毕竟丰富的第三方库是python的优势所在,为了更加方便的安装第三方库,使用pip命令,我们需要进行相应的安装. 1.安装pip前需要前置安装setuptools 命令如下: wget --no-ch ...

  2. Purpose of ContextLoaderListener in Spring

    The ApplicationContext is where your Spring beans live. The purpose of the ContextLoaderListener is ...

  3. 八、网页版消息推送SDK-WebSockets

    介绍 由于项目组需求.最近在研究消息推送服务平台.结合业务和使用场景分析最终选择的是 Mosquitto 消息服务器. Mosquitto 服务器的安装.配置.集群搭建 我就不在这多说了.有兴趣的可以 ...

  4. mysql数据库从删库到跑路之mysql存储引擎

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用pn ...

  5. 原生js追加Html 或者text

    方法:insertAdjacentHTML(postion,html); insertAdjacentTEXT(postion,text); 参数: position 是相对于 element 元素的 ...

  6. PKU 1094 Sorting It All Out(拓扑排序)

    题目大意:就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列. 是典型的拓扑排序,但输出格式上确有三种形式: 1.该字母序列有序,并依次输出: 2.判断该序列是否唯一: 3.该序列字母次序之间 ...

  7. Spark SQL慕课网日志分析(1)--系列软件(单机)安装配置使用

    来源: 慕课网 Spark SQL慕课网日志分析_大数据实战 目标: spark系列软件的伪分布式的安装.配置.编译 spark的使用 系统: mac 10.13.3 /ubuntu 16.06,两个 ...

  8. mycat 指定mycat节点

    mycat 指定节点: /*!mycat:dataNode=order1*/select seq_nextval('APPOINTMENT_NO'); 指定节点创建存储过程或建表: /*!mycat: ...

  9. vue跳转页面传值怎么传?

    这是路由跳转: this.$router.push( { name: 'holderResult', params: { meetingId:self.$route.params.meetingId} ...

  10. linux下 安装php的gettext模块

    安装php的模块有两种方式: 一.重新编译php,加上--with-gettext 二.动态安装 现在说下第二个动态安装 1.下载同版本的php原包,解压后进入ext目录,目录下便是模块 2.进入ge ...