版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010996565/article/details/82562459
步骤
在pom.xml添加mysql,spring-data-jpa的依赖
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- spring-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在application.properties文件中配置mysql连接配置文件
########################################################
###datasource mysql 数据库配置
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = ok
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
在application.properties中配置JPA的配置信息
########################################################
### Java Persistence Api Spring JPA 配置信息
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
测试
创建一个实体类
package com.cheny.spring_boot_hello.demo.bean;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* 创建一个实体类
* 如何持久化
* 使用@entity尽心实体类的持久化操作, 当jpa检测到我们实体类中
* 有@entity注解的时候,回在数据库中生成表结构
*
* 如果指定主键以及生成策略
* @author Administrator
*
*/
@Entity
public class Cat {
/**
* 使用@id注定主键
* 使用@GeneratedValue(strategy=GenerationType.AUTO)
* 指定主键的生成策略,mysql是自增的
*/
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String catName;
private int catAge;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCatName() {
return catName;
}
public void setCatName(String catName) {
this.catName = catName;
}
public int getCatAge() {
return catAge;
}
public void setCatAge(int catAge) {
this.catAge = catAge;
}
}
创建Repository
只要继承CrudRepository类就可以
package com.cheny.spring_boot_hello.demo.repository;
import org.springframework.data.repository.CrudRepository;
import com.cheny.spring_boot_hello.demo.bean.Cat;
public interface CatRepository extends CrudRepository<Cat, Integer> {
}
创建一个service
package com.cheny.spring_boot_hello.demo.service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import org.springframework.stereotype.Service;
import com.cheny.spring_boot_hello.demo.bean.Cat;
import com.cheny.spring_boot_hello.demo.dao.CatDao;
import com.cheny.spring_boot_hello.demo.repository.Cat2Repository;
import com.cheny.spring_boot_hello.demo.repository.CatRepository;
@Service
public class CatService {
@Resource
private CatRepository catRepository;
@Resource
private CatDao catDao;
/**
* save update delete 方法需要绑定事务
* 使用@transactional进行事务的绑定
*/
@Transactional
public void save(Cat cat) {
catRepository.save(cat);
}
@Transactional
public void delete(int id) {
catRepository.delete(id);
}
public Iterable<Cat> getAll() {
return catRepository.findAll();
}
public Cat findByCatName(String catName) {
return cat2Repository.findByCatName(catName);
}
public Cat findByCatName2(String catName) {
return cat2Repository.findMyCatName(catName);
}
public Cat selectByCatName(String catName) {
return catDao.selectByCatName(catName);
}
}
创建请求Controller
package com.cheny.spring_boot_hello.demo.controller;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cheny.spring_boot_hello.demo.bean.Cat;
import com.cheny.spring_boot_hello.demo.service.CatService;
@RestController
@RequestMapping("/cat")
public class CatController {
@Resource
private CatService catService;
@RequestMapping("/save")
public String sava() {
Cat cat = new Cat();
cat.setCatName("jack");
cat.setCatAge(3);
catService.save(cat);
return "save ok";
}
@RequestMapping("/delete")
public String delete() {
catService.delete(1);
return "delete ok";
}
@RequestMapping("/findAll")
public Iterable<Cat> findAll(){
return catService.getAll();
}
@RequestMapping("/findByCatName")
public Cat findByCatName(String catName){
return catService.findByCatName(catName);
}
@RequestMapping("/findByCatName2")
public Cat findByCatName2(String catName){
return catService.findByCatName2(catName);
}
@RequestMapping("/selectByCatName")
public Cat selectByCatName(String catName){
return catService.selectByCatName(catName);
}
}