8. 使用JPA保存数据

Posted blackcatfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8. 使用JPA保存数据相关的知识,希望对你有一定的参考价值。

在看这一篇文档的话,需要先配置好JPA – Hibernate。

       总体步骤:

(1)  创建实体类Demo,如果已经存在,可以忽略。

(2)  创建jpa repository类操作持久化。

(3)  创建service类。

(4)  创建restful请求类。

(5)  测试

 

代码如下:

com.kfit.test.bean.Demo :

package com.kfit.test.bean;

 

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

 

/**

 * 测试实体类.

 * @author Administrator

 *

 */

@Entity //加入这个注解,Demo就会进行持久化了,在这里没有对@Table进行配置,请自行配置。

public  class  Demo {

       @Id @GeneratedValue

       private long id;//主键.

       private Stringname;//测试名称.

       public long getId(){

              return id;

       }

       public voidsetId(long id) {

              this.id = id;

       }

       public StringgetName() {

              return name;

       }

       public voidsetName(String name) {

              this.name =name;

       }

}

 

 

 

com.kfit.test.dao.DemoRepository(这是一个接口,没有具体的实现,这就是JPA):

package com.kfit.test.dao;

import org.springframework.data.repository.CrudRepository;

import com.kfit.test.bean.Demo;

/*

 * 在CrudRepository自带常用的crud方法.

 * 这样一个基本dao就写完了.

 */

public interface DemoRepository extends CrudRepository<Demo,Long>{

 

}

 

 

到这里保存数据的方法就写完了。CrudRepository类把一些常用的方法都已经进行定义和实现了。那么你现在就可以在别的类引入调用了。

另外就是在Spring Data的核心接口里面Repository是最基本的接口了, spring提供了很多实现了该接口的基本接口,如:CrudRepository,PagingAndSortingRepository,SimpleJpaRepository,QueryDslJpaRepository等大量查询接口

 

com.kfit.test.service.DemoService :

package com.kfit.test.service;

 

import javax.annotation.Resource;

importorg.springframework.stereotype.Service;

import com.kfit.test.bean.Demo;

import com.kfit.test.dao.DemoRepository;

 

/**

 * 提供Demo服务类.

 * @author Administrator

 *

 */

@Service

publicclass DemoService {

      

       @Resource

       private DemoRepository demoRepository;

      

@Transactional

       publicvoid save(Demo demo){

              demoRepository.save(demo);

       }

}

 

 

com.kfit.test.web.Demo2Controller(这里为了代码干净,新建了一个测试类):

package com.kfit.test.web;

 

import javax.annotation.Resource;

importorg.springframework.web.bind.annotation.RequestMapping;

importorg.springframework.web.bind.annotation.RestController;

import com.kfit.test.bean.Demo;

import com.kfit.test.service.DemoService;

 

@RestController

@RequestMapping("/demo2")

publicclass Demo2Controller {

       @Resource

       private DemoService demoService;

      

       /**

        * 测试保存数据方法.

        * @return

        */

       @RequestMapping("/save")

       public String save(){

              Demod = new Demo();

              d.setName("Angel");

              demoService.save(d);//保存数据.

              return"ok.Demo2Controller.save";

       }

      

}

 

 

之后就可以进行测试了,访问地址:http://127.0.0.1:8080/demo2/save

查看数据库,就可以看到已经添加的数据了。

 

以上是关于8. 使用JPA保存数据的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段8——声明函数

JPA 未在 WildFly 16 上保存到数据库

如何使用 Spring Data JPA 保存具有手动分配标识符的实体?

使用 savedInstanceState 保存片段状态

如何使用spring JPA存储库保存@lob数据

JPA 实体未保存在数据库中