springboot第一章04----spring-boot-starter-data-jpa

mac2025-10-18  8

第一步:添加依赖pom.xml

<!-- 添加Mysql数据库驱动依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 添加Spring-boot-starter-data-jpa依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>

第二步:创建application.properties(因为上篇文章的时候已创建,所以直接在里面添加)

注:下图中所示很重要

 

spring.resources.chain.cache=false ################################################ ##########mysql连接配置 ################################################ spring.datasource.url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver spring.datasource.max-active = 20 spring.datasource.max-idle = 8 spring.datasource.min-idle = 8 spring.datasource.initial-size = 10 ################################################ ##########spring-boot-start-data-jpa配置 ################################################ spring.jpa.database = MYSQL ##是否显示sql语句 spring.jpa.show-sql = true ####执行ddl语句的时候是什么操作:create,create-drop,update spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect ##命名策略 spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.improvedNamingStrategy

第三步:创建实体类cat.java

package com.demo.springboot.bean; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; /** * 创建一个cat的实体类 * 1.如何持久化呢? * 我们用@Entity进行实体类的持久化操作,当JPA检测到@Entity注解时会自动在数据性形成cat的表结构 * * 2.如何生成主键? * 我们使用@Id生成主键 * 使用@GeneratedValue(strategy=GenerationType.IDENTITY)指定主键的生成策略,Mysql默认的是自增长 * @author fengjinzhu * */ @Entity public class Cat { /** * 使用@Id生成主键 * 使用@GeneratedValue(strategy=GenerationType.IDENTITY)让主键自增 */ @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String catName; private Integer catAge; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getCatName() { return catName; } public void setCatName(String catName) { this.catName = catName; } public Integer getCatAge() { return catAge; } public void setCatAge(Integer catAge) { this.catAge = catAge; } }

注意:这是使用的是Integer,而不是int,否则会报错

第四步:运行App.java

走到这一步,就可以在Mysql数据库中自动生成cat的表结构

第五步:创建Service,Repository,Conntroller

第六步:代码编写

1)CatRepository.java

package com.demo.springboot.repository; import org.springframework.data.repository.CrudRepository; import com.demo.springboot.bean.Cat; /** * CrudRepository<Cat, Integer>"<>"表示实体类和id的类型 * @author fengjinzhu * */ public interface CatRepository extends CrudRepository<Cat, Integer>{ }

里面不需要编写代码,只继承CrudRepository 

2)CatService.java

package com.demo.springboot.service; import java.util.List; import javax.annotation.Resource; import javax.transaction.Transactional; import org.springframework.stereotype.Service; import com.demo.springboot.bean.Cat; import com.demo.springboot.repository.CatRepository; @Service public class CatService { @Resource private CatRepository catRepository; /** * 添加cat对象 * @param cat */ @Transactional public void save(Cat cat){ catRepository.save(cat); } /** * 删除数据 */ @Transactional public void delete(Integer id){ catRepository.delete(id); } /** * 查询数据 */ @Transactional public Interable<Cat> getAll(){ return catRepository.findAll(); } }

3)CatController.java 

package com.demo.springboot.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.demo.springboot.bean.Cat; import com.demo.springboot.service.CatService; @RestController @RequestMapping("/cat") public class CatController { @Autowired private CatService catService; /** * 添加 * @param cat * @return */ @RequestMapping("/save") public String save(){ Cat cat = new Cat(); cat.setCatName("机器猫"); cat.setCatAge(3); catService.save(cat); return "save ok"; } /** * 删除 * @param id */ @RequestMapping("/delete") public String delete(Integer id){ catService.delete(1); return "delete ok"; } /** * 查询 * @return */ @RequestMapping("/getAll") public Interable<Cat> getAll(){ return catService.getAll(); } }

4)测试 

下面请看一下文章链接:https://www.cnblogs.com/xd502djj/p/9380278.html

感谢作者君,写的很好

最新回复(0)