结构.png

首先我们创建一个数据库映射的实体类,上一节讲了的

package com.alun;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;/*** Created by Administrator on 2017/5/29.*/
@Entity
public class ManInfo {@Id@GeneratedValueprivate Integer id;private Integer age;private String nickname;public ManInfo() {}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}
}

PS:@GeneratedValue注解的strategy属性提供四种值:
-AUTO主键由程序控制, 是默认选项 ,不设置就是这个
-IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式
-SEQUENCE 通过数据库的序列产生主键, MYSQL 不支持
-Table 提供特定的数据库产生主键, 该方式更有利于数据库的移植

@GeneratedValue(strategy=GenerationType.IDENINY)

然后创建一个ManInfoRepository接口文件,继承JpaRepository,泛型里填上实体类和id的类型,比如这里我填的是ManInfo和Integer

package com.alun;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/*** Created by Administrator on 2017/5/29.*/
public interface ManInfoRepository extends JpaRepository<ManInfo,Integer> {}

然后就可以使用了,这里我们对数据库里进行增删查改
创建ManInfoController,使用刚才创建的 ManInfoRepository进行操作,使用 ManInfoRepository
要用到 @Autowired注解, @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作

package com.alun;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** Created by Administrator on 2017/5/29.*/
@RestController
public class ManInfoController {@AutowiredManInfoRepository manInfoRepository;/*** 查找所有人* @return*/@GetMapping(value = "/getAllManInfo")List< ManInfo> getAllManInfo(){return manInfoRepository.findAll();}/*** 根据id找某一个人* @param id*/@DeleteMapping(value = "/getManInfo")ManInfo getManInfo(@RequestParam("id") Integer id ){return manInfoRepository.findOne(id);}/*** 添加一个人* @param age* @param nickname* @return*/@PostMapping(value = "/addMan")ManInfo addMan(@RequestParam("age") Integer age ,@RequestParam("nickname") String nickname ){ManInfo manInfo=new ManInfo();manInfo.setAge(age);manInfo.setNickname(nickname);return  manInfoRepository.save(manInfo);}/*** 根据ID修改一个人的信息* @param id* @param age* @param nickname* @return*/@PutMapping(value = "/update")ManInfo updateManInfo(@RequestParam("id") Integer id , @RequestParam("age") Integer age ,@RequestParam("nickname") String nickname ){ManInfo manInfo=new ManInfo();manInfo.setId(id);manInfo.setAge(age);manInfo.setNickname(nickname);return  manInfoRepository.save(manInfo);}/*** 根据ID删除一个人的信息* @param id*/@DeleteMapping(value = "/dlt")void dltManInfo(@RequestParam("id") Integer id ){manInfoRepository.delete(id);}/*** 根据年龄查询*/@GetMapping(value = "getManInfoByAge")List<ManInfo>  getManInfoByAge   (@RequestParam("age")  Integer age){return  manInfoRepository.findByAge(age);}
}

以上都是根据id进行增删查改,那么我要用其他参数的操作,比如年龄(age)怎么办呢?!
只需要改改ManInfoRepository 就可以了。

package com.alun;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/*** Created by Administrator on 2017/5/29.*/
public interface ManInfoRepository extends JpaRepository<ManInfo,Integer> {//扩展,根据年龄查询,这的方法名必须写成findByAge .List<ManInfo> findByAge(Integer age);}

在ManInfoController使用

 /*** 根据年龄查询*/@GetMapping(value = "getManInfoByAge")List<ManInfo>  getManInfoByAge   (@RequestParam("age")  Integer age){return  manInfoRepository.findByAge(age);}

最后我们来看看 JPA中一些常用的查询操作

//And --- 等价于 SQL 中的 and 关键字,比如 findByHeightAndSex(int height,char sex);  public List<User> findByHeightAndSex(int height,char sex);  // Or --- 等价于 SQL 中的 or 关键字,比如 findByHeightOrSex(int height,char sex);  public List<User> findByHeightOrSex(int height,char sex);  //Between --- 等价于 SQL 中的 between 关键字,比如 findByHeightBetween(int min, int max);  public List<User> findByHeightBetween(int min,int max);  //LessThan --- 等价于 SQL 中的 "<",比如 findByHeightLessThan(int max);  public List<User> findByHeightLessThan(int max);  //GreaterThan --- 等价于 SQL 中的">",比如 findByHeightGreaterThan(int min);  public List<User> findByHeightGreaterThan(int min);  //IsNull --- 等价于 SQL 中的 "is null",比如 findByNameIsNull();  public List<User> findByNameIsNull();  //IsNotNull --- 等价于 SQL 中的 "is not null",比如 findByNameIsNotNull();  public List<User> findByNameIsNotNull();  //NotNull --- 与 IsNotNull 等价;  public List<User> findByNameNotNull();  //Like --- 等价于 SQL 中的 "like",比如 findByNameLike(String name);  public List<User> findByNameLike(String name);  //NotLike --- 等价于 SQL 中的 "not like",比如 findByNameNotLike(String name);  public List<User> findByNameNotLike(String name);  //OrderBy --- 等价于 SQL 中的 "order by",比如 findByNameNotNullOrderByHeightAsc();  public List<User>findByNameNotNullOrderByHeightAsc();  //Not --- 等价于 SQL 中的 "! =",比如 findByNameNot(String name);  public List<User> findByNameNot(String name);  //In --- 等价于 SQL 中的 "in",比如 findByNameIN(String name);  public List<User> findByNameIn(String name);  //NotIn --- 等价于 SQL 中的 "not in",比如 findByNameNotIN(String name);  public List<User> findByNameNotIn(String name);

springboot+JPARepository实现增删改查相关推荐

  1. SpringBoot+MyBatisPlus+Vue增删改查

    SpringBoot+MyBatisPlus+Vue增删改查 建议在写之前会熟练使用vue脚手架,以及掌握vue相关知识 本文章会教你构建一个springboot+mybatisplus+vue 的增 ...

  2. SpringBoot集成thymeleaf增删改查示例

    有小伙伴找我要个 thymeleaf 的 demo,说自己集成的总是报错,所以就有了这篇- 关于什么是 thymeleaf 我就不赘述了,相信搜到这篇的大部分是奔着如何集成来的. 本文源码先附上:ht ...

  3. Springboot+Mybatis-plus实现增删改查功能超详细

    1.后端实现 用到的依赖:Springboot,Mybatis-plus,lombok,mysql驱动 1.1.利用IDEA2021创建一个Springboot项目 注意:Name(项目名称) loc ...

  4. springboot的基本增删改查

    springboot增删改查 1.根据表中的字段创建实体类UserInfo.java 2.编写MybatisController.java 3.在postman中访问接口(先启动项目) 3-1.增 3 ...

  5. SpringBoot项目实现增删改查

    接上一章:Java 连接MySql_原你是阳光(#`O′)的博客-CSDN博客,实现单表增删改查 引入依赖 <dependencies><!-- springmvc的场景启动器 -- ...

  6. layui+SpringBoot实现表格增删改查

    前言 本文将演示如何使用Springboot(后端框架)和layui(前端框架)将数据库中的数据渲染到前端页面,以及对前端页面的数据实现增删改. 效果图如下: 完整项目已上传至GitHub,项目地址: ...

  7. SpringBoot的ResultFul增删改查

    文章目录 项目实验 1.resultfulCRUD-员工列表 thymeleaf公共页面元素抽取 2.CRUD-员工添加 3.CRUD-员工修改 4.CRUD-员工删除 项目实验 1.resultfu ...

  8. springboot整合mybatis增删改查(三):mybatis逆向工程

    上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...

  9. springboot整合mongodb增删改查入门

    1.配置与依赖 2.实体与repository层 3.测试 适合新手. 要求:安装好mongodb 代码和运行程序如下: 目录: 1.配置与依赖 <dependency><group ...

最新文章

  1. 5行代码就能入门爬虫?
  2. linux 如何运行.sql文件
  3. 深入浅出依赖注入框架Dagger2
  4. 关注WebWork(四)
  5. YUV420数据格式
  6. Win32 路径操作API
  7. 老齐python-基础7(文件操作、迭代)
  8. Android处理键盘事件的小例子
  9. 小白学习MVC5+EF6遇到的问题一
  10. 在powerDesigner中通过SQL生成pdm
  11. Unity3d之HashSlash学习笔记(一)--角色属性类的构架
  12. Spring Boot对Ajax跨域访问的支持实现
  13. python爬取墨迹天气的8月份的温度情况并发送到邮箱
  14. ROS中EKF(扩展卡尔曼跟踪)的使用
  15. GPS,RTK,PPS及网络RTK科普
  16. 12306验证图片集合。
  17. python excel sheet_人生苦短我学Python——Excel处理之快速创建多个Sheet并重命名
  18. 数据结构常用的七种排序算法总结
  19. 腾讯有数后端Java对接
  20. Android studio 实现打电话发短信浏览网页功能 android开发小实验

热门文章

  1. 【JavaScript】关于delete
  2. IAR 的精确延时程序(转)
  3. 添加简单的linux内核模块,操作系统实践 第12章-添加最简单的Linux内核模块.ppt
  4. 若某计算机字长为16位,题目来源于王道论坛 某计算机字长为16位,主存地址空间...
  5. python writelines_Python之write与writelines区别
  6. php用高德地图api坐标返回市_php百度坐标转高德坐标(示例代码)
  7. c语言计算分段函数_Rust能够取代C语言吗?
  8. 万能广告促销海报,找不到灵感也不怕
  9. 设计干货素材模板|常见的UI设计手法
  10. 一样是图标设计,UI 小白应该和老司机学的上手技能,临摹!