springboot学习笔记03 整合JPA
一、pom.xml文件重引入jpa依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
二、application.yml配置数据源信息
spring:datasource:url: jdbc:mysql://localhost:3306/testtype: com.alibaba.druid.pool.DruidDataSourceusername: edupassword: 123456driver-class-name: com.mysql.jdbc.Driverjpa:hibernate:ddl-auto: updateshow-sql: true
pa.hibernate.ddl-auto是hibernate的配置属性,其主要作用是:自动创建、更新、验证数据库表结构。该参数的几种配置如下:
create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop:每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
三、定义domain对象
package springboot.domain;import lombok.Getter;
import lombok.Setter;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;@Entity
@Getter
@Setter
public class Person {@Id@GeneratedValueprivate Long id;@Column(name = "name", nullable = true, length = 20)private String name;@Column(name = "agee", nullable = true, length = 4)private int age;
}
四、PersonRepository接口
package springboot.repository;import org.springframework.data.jpa.repository.JpaRepository;
import springboot.domain.Person;public interface PersonRepository extends JpaRepository<Person, Long> {Person findByName(String name);
}
五、写controller接口测试
package springboot.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springboot.domain.Person;
import springboot.repository.PersonRepository;@RestController
@RequestMapping(value = "person")
public class PerconController {@Autowiredprivate PersonRepository personRepository;@PostMapping(path = "addPerson")public void addPerson(Person person) {personRepository.save(person);}@DeleteMapping(path = "deletePerson")public void deletePerson(Long id) {Person p = new Person();p.setId(id);personRepository.delete(p);}@GetMapping("getPerson")public Object getPerson(@RequestParam("name") String name) {return personRepository.findByName(name);}
}
六、项目启动信息
项目启动时,检测到数据配置,就会自动给你在数据库创建出相应的表,如下所示:
七、用postman测试
可能因为name是中文,没有解析出来,这里是null,再试试英文能不能解析出来,重新换个英文name(“zhangquandan”)也不行,发现可是age也不对啊,肯定是值没有传进去。
在参数前面加了一个@RequestBody注解后,值就传进来了
八、测试getPerson方法
springboot学习笔记03 整合JPA相关推荐
- springboot学习笔记-3 整合redismongodb
一.整合redis 1.1 建立实体类 @Entity @Table(name="user") public class User implements Serializable ...
- SpringBoot学习笔记(7)-整合Mybatis
文章目录 一.配置mybatis依赖 二.配置application.properties 三.在启动类上加@MapperScan注解 四.配置资源文件读取 五.结合SpringMVC完成测试 整合环 ...
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- 2.6 springBoot学习笔记(2.6)——- 整合mybatisPlus
更多文章 更多系列文章在个人网站 springBoot学习系列笔记文章 springBoot学习笔记(1)-- 搭建springBoot项目 文章目录 更多文章 springBoot学习系列笔记文章 ...
- SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理
在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板 ...
- SpringBoot(学习笔记)
SpringBoot学习笔记 从今天开始就进入微服务阶段 一些小问题 1.HelloWorld 1.1回顾什么是Spring 1.2什么是SpringBoot 1.3微服务架构 2.第一个Spring ...
- SpringBoot 学习笔记
SpringBoot 学习笔记 文章目录 SpringBoot 学习笔记 1. SpringBoot简介 1.1 什么是Spring 1.2 Spring 是如何简化Java开发的 1.3 什么是 S ...
- SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用
1. freemarker引擎的使用 如果你使用的是idea或者eclipse中安装了sts插件,那么在新建项目时就可以直接指定试图模板 如图: 勾选freeMarker,此时springboot项目 ...
- JavaEE——Spring学习笔记03【AOP开发】
JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...
- springboot学习笔记:12.解决springboot打成可执行jar在linux上启动慢的问题
springboot学习笔记:12.解决springboot打成可执行jar在linux上启动慢的问题 参考文章: (1)springboot学习笔记:12.解决springboot打成可执行jar在 ...
最新文章
- 一位小小码蚁工作2年多感想
- java swing form_在java swing中创建表单最简单的方法是什么?
- 光模块价格由带宽还是距离决定_100G QSFP28 CWDM4光模块介绍及应用
- 个性化推荐认知之----数字化转型浪潮下,产品经理应如何重新认知个性化推荐?...
- mysql死锁抛出异常_如何排查和处理 MySQL 死锁异常?详细分析及解决方法步骤
- 记一次跳过系统版本检测强刷opengapps卡刷包的过程,20210110修
- Android 检查权限总是 PERMISSION_GRANTED
- SSM+MySQL+JSP教务管理系统设计与实现(附源码下载地址)
- Day45. 数据分析实战(1):超市运营数据分析
- dos命令批量修改图片名称
- python 爬取王者荣耀高清壁纸
- Tracer 记录 Controller 日志
- 审查元素:html标签消失。
- 向UBOOT 中添加自己的板子
- Java实现Mysql数据库备份与还原(Linux 和Windows 包含单张表备份)
- linux中怎么修改用户组名,Linux 下如何修改用户名(同时修改用户组名和家目录)...
- 职业python培训
- java 指定字符串长度,不足则右侧添加空格
- java解答约瑟夫问题
- dnstop DNS分析工具