springboot+JPARepository实现增删改查
首先我们创建一个数据库映射的实体类,上一节讲了的
-
package com.alun;
-
-
import javax.persistence.Entity;
-
import javax.persistence.GeneratedValue;
-
import javax.persistence.Id;
-
-
/**
-
* Created by Administrator on 2017/5/29.
-
*/
-
-
public class ManInfo {
-
-
-
private 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.
-
*/
-
-
public class ManInfoController {
-
-
ManInfoRepository manInfoRepository;
-
-
/**
-
* 查找所有人
-
* @return
-
*/
-
-
List< ManInfo> getAllManInfo(){
-
return manInfoRepository.findAll();
-
}
-
-
-
/**
-
* 根据id找某一个人
-
* @param id
-
*/
-
-
ManInfo getManInfo(
-
return manInfoRepository.findOne(id);
-
}
-
-
/**
-
* 添加一个人
-
* @param age
-
* @param nickname
-
* @return
-
*/
-
-
ManInfo addMan(
-
-
ManInfo manInfo=new ManInfo();
-
manInfo.setAge(age);
-
manInfo.setNickname(nickname);
-
return manInfoRepository.save(manInfo);
-
}
-
-
/**
-
* 根据ID修改一个人的信息
-
* @param id
-
* @param age
-
* @param nickname
-
* @return
-
*/
-
-
ManInfo updateManInfo(
-
-
ManInfo manInfo=new ManInfo();
-
manInfo.setId(id);
-
manInfo.setAge(age);
-
manInfo.setNickname(nickname);
-
return manInfoRepository.save(manInfo);
-
}
-
-
-
/**
-
* 根据ID删除一个人的信息
-
* @param id
-
*/
-
-
void dltManInfo(
-
manInfoRepository.delete(id);
-
}
-
-
/**
-
* 根据年龄查询
-
*/
-
-
List<ManInfo> getManInfoByAge (
-
-
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);
-
https://blog.csdn.net/chehec2010/article/details/84995827

浙公网安备 33010602011771号