第一步:添加依赖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
感谢作者君,写的很好