• 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

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

    努力提高自己的技术,不忘初心
  • 相关阅读:
    ZJOI 2014 星系调查(推导)
    APIO 2014 回文串(Manacher+后缀自动机+倍增)
    HDU 3948 The Number of Palindromes(Manacher+后缀数组)
    BalkanOI 2018 Parentrises(贪心+DP)
    POJ 3693 Maximum repetition substring(后缀数组+ST表)
    HDU 5769 Substring(后缀数组)
    POJ 1743 Musical Theme(后缀数组+二分答案)
    POJ 3261 Milk Patterns(后缀数组+二分答案)
    THUSCH 2017 大魔法师(矩阵乘法+线段树)
    BZOJ 2759 一个动态树好题(动态树)
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/9900070.html
Copyright © 2020-2023  润新知