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

本文介绍了如何在SpringBoot项目中使用spring-boot-starter-data-jpa,包括添加依赖、配置properties、创建实体类、运行启动类以及创建Service、Repository和Controller。通过这些步骤,可以在MySQL数据库中自动生成表结构,并实现简单CRUD操作。
摘要由CSDN通过智能技术生成

第一步:添加依赖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

感谢作者君,写的很好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值