springboot+JPARepository实现增删改查
结构.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实现增删改查相关推荐
- SpringBoot+MyBatisPlus+Vue增删改查
SpringBoot+MyBatisPlus+Vue增删改查 建议在写之前会熟练使用vue脚手架,以及掌握vue相关知识 本文章会教你构建一个springboot+mybatisplus+vue 的增 ...
- SpringBoot集成thymeleaf增删改查示例
有小伙伴找我要个 thymeleaf 的 demo,说自己集成的总是报错,所以就有了这篇- 关于什么是 thymeleaf 我就不赘述了,相信搜到这篇的大部分是奔着如何集成来的. 本文源码先附上:ht ...
- Springboot+Mybatis-plus实现增删改查功能超详细
1.后端实现 用到的依赖:Springboot,Mybatis-plus,lombok,mysql驱动 1.1.利用IDEA2021创建一个Springboot项目 注意:Name(项目名称) loc ...
- springboot的基本增删改查
springboot增删改查 1.根据表中的字段创建实体类UserInfo.java 2.编写MybatisController.java 3.在postman中访问接口(先启动项目) 3-1.增 3 ...
- SpringBoot项目实现增删改查
接上一章:Java 连接MySql_原你是阳光(#`O′)的博客-CSDN博客,实现单表增删改查 引入依赖 <dependencies><!-- springmvc的场景启动器 -- ...
- layui+SpringBoot实现表格增删改查
前言 本文将演示如何使用Springboot(后端框架)和layui(前端框架)将数据库中的数据渲染到前端页面,以及对前端页面的数据实现增删改. 效果图如下: 完整项目已上传至GitHub,项目地址: ...
- SpringBoot的ResultFul增删改查
文章目录 项目实验 1.resultfulCRUD-员工列表 thymeleaf公共页面元素抽取 2.CRUD-员工添加 3.CRUD-员工修改 4.CRUD-员工删除 项目实验 1.resultfu ...
- springboot整合mybatis增删改查(三):mybatis逆向工程
上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...
- springboot整合mongodb增删改查入门
1.配置与依赖 2.实体与repository层 3.测试 适合新手. 要求:安装好mongodb 代码和运行程序如下: 目录: 1.配置与依赖 <dependency><group ...
最新文章
- 5行代码就能入门爬虫?
- linux 如何运行.sql文件
- 深入浅出依赖注入框架Dagger2
- 关注WebWork(四)
- YUV420数据格式
- Win32 路径操作API
- 老齐python-基础7(文件操作、迭代)
- Android处理键盘事件的小例子
- 小白学习MVC5+EF6遇到的问题一
- 在powerDesigner中通过SQL生成pdm
- Unity3d之HashSlash学习笔记(一)--角色属性类的构架
- Spring Boot对Ajax跨域访问的支持实现
- python爬取墨迹天气的8月份的温度情况并发送到邮箱
- ROS中EKF(扩展卡尔曼跟踪)的使用
- GPS,RTK,PPS及网络RTK科普
- 12306验证图片集合。
- python excel sheet_人生苦短我学Python——Excel处理之快速创建多个Sheet并重命名
- 数据结构常用的七种排序算法总结
- 腾讯有数后端Java对接
- Android studio 实现打电话发短信浏览网页功能 android开发小实验
热门文章
- 【JavaScript】关于delete
- IAR 的精确延时程序(转)
- 添加简单的linux内核模块,操作系统实践 第12章-添加最简单的Linux内核模块.ppt
- 若某计算机字长为16位,题目来源于王道论坛 某计算机字长为16位,主存地址空间...
- python writelines_Python之write与writelines区别
- php用高德地图api坐标返回市_php百度坐标转高德坐标(示例代码)
- c语言计算分段函数_Rust能够取代C语言吗?
- 万能广告促销海报,找不到灵感也不怕
- 设计干货素材模板|常见的UI设计手法
- 一样是图标设计,UI 小白应该和老司机学的上手技能,临摹!