spring-data-jpa操作数据库
Posted afei1759
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-data-jpa操作数据库相关的知识,希望对你有一定的参考价值。
1、spring-data-jpa是spring对hibernate的整合
2、spring boot工程在实体类添加注解、添加两个依赖、写配置文件,可以自动生成数据库表
实体类:
@Entity //标明根据该类创建数据表
public class People
@Id
@GeneratedValue //主键自增
private Long id;
private String name;
public People() //必须要有无参构造
application.yml默认配置文件:
#默认配置文件
spring:
profiles:
active: default
datasource: #配置数据库
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/hap_dev
username: root
password: tiger
jpa:
hibernate:
ddl-auto: create #运行时自动根据实体类创建数据库表
show-sql: true
注意:
ddl-auto: create,即运行时自动根据实体类创建people数据库表 ,若数据库表
people已存在则先删除再创建
ddl-auto: update,即运行时自动根据实体类创建people数据库表 ,若数据库表
people已存在则不做任何操作
ddl-auto: create-drop,即运行时自动根据实体类创建people数据库表,当应用停
止时删除该表
ddl-auto: none,即运行时什么也不干,无数据库表的操作
ddl-auto: validate,即运行时验证实体类属性与数据库表字段是否一致,不一致
则抛异常
pom.xml依赖(基本的spring boot依赖要有)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
3、由spring-data-jpa操作数据库(结合restful风格)
Service接口类:
// 继承jpa操作数据库的接口,并指定实体类名和主键类型
public interface PeopleRepository extends JpaRepository<People,Long>
public List<People> findByName(String name);//自定义的方法命名要符合这个格式
Controller类:
@RestController
public class PeopleController
@Autowired
private PeopleRepository peopleRepository;
//查询people表所有数据
@GetMapping("/peoples")
public List<People> getAll()
return peopleRepository.findAll();
// 插入一条数据
@PostMapping("/peoples")
public People addOne(@RequestParam("name") String name)
People p=new People();
p.setName(name);
return peopleRepository.save(p);
//由id获取一条数据
@GetMapping("/peoples/id")
public People getOne(@PathVariable("id") Long id)
return peopleRepository.findOne(id);
//由id更新、插入一条数据
@PutMapping("/peoples/id")
public People putOne(@PathVariable("id") Long id,@RequestParam("name") String name)
People p=new People();
p.setId(id);
p.setName(name);
return peopleRepository.save(p);
// 由id删除一条数据
@DeleteMapping("/peoples/id")
public void delOne(@PathVariable("id") Long id)
peopleRepository.delete(id);
//通过name查询一条或多条数据
@GetMapping("/peoples/name/name")
public List<People> findByName(@PathVariable("name") String name)
return peopleRepository.findByName(name);
以上是关于spring-data-jpa操作数据库的主要内容,如果未能解决你的问题,请参考以下文章
spring-boot数据库操作(spring-data-jpa)
spring boot: spring-data-jpa (Repository/CrudRepository) 数据库操作, @Entity实体类持久化