导入相关pom依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
application.yml文件配置
spring: jpa: hibernate: ddl-auto: update show-sql: true
自动建表相关代码
@Entity @Table(name = "t_springboot_book") public class Book { @Id @GeneratedValue private Integer bid; @Column(length = 100) private String bname; @Column private Float price;
数据库自动建表截图
会创建一个序列以及t_springboot_book表
jpa值增删改查
* 只要继承JpaRepository,通常所用的增删查改方法都有 * 第一个参数:操作的实体类 * 第二个参数:实体类对应数据表的主键 */ public interface JpaDao extends JpaRepository<Book, Integer> { }
controller层
@Autowired private JpaDao jpaDao; @RequestMapping("/add") public String add(Book book){ jpaDao.save(book); return "success"; } @RequestMapping("/edit") public String edit(Book book){ jpaDao.save(book); return "success"; } @RequestMapping("/del") public String del(Book book){ jpaDao.delete(book); return "success"; } @RequestMapping("/getOne") public Book getOne(Integer bid){ // 会出现懒加载问题:org.hibernate.LazyInitializationException: could not initialize proxy - no Session // return jpaDao.getOne(bid); return jpaDao.findById(bid).get(); } @RequestMapping("/getAll") public List<Book> getAll(){ return jpaDao.findAll(); }
浏览器输入请求进行测试
http://localhost:8080/springboot/jpa/getOne?bid=11
http://localhost:8080/springboot/jpa/getAll
http://localhost:8080/springboot/jpa/add?bname=不死不灭&price=234
http://localhost:8080/springboot/jpa/add?bname=斗破苍穹&price=234&bid=11
http://localhost:8080/springboot/jpa/del?bid=11
jpa值复杂查询
dao层
* 要使用高级查询必须继承 * org.springframework.data.jpa.repository.JpaSpecificationExecutor<T>接口 */ public interface JpaDao extends JpaRepository<Book, Integer>, JpaSpecificationExecutor<Book> { }
controller层
@RequestMapping("/getCondition") public List<Book> getCondition(Book book){ return jpaDao.findAll(new Specification<Book>() { @Override public Predicate toPredicate(Root<Book> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) { Predicate predicate = criteriaBuilder.conjunction(); if(book != null){ if(null != book.getBname() && !"".equals(book.getBname())){ predicate.getExpressions().add(criteriaBuilder.like(root.get("bname"),"%"+book.getBname()+"%")); } } return predicate; } }); }
浏览器访问结果
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有