Spring Boot整合Spring Data JPA

1)加入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

2)增加配置(application.properties)

server.port=8080
server.servlet.context-path=/ # database configuration
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blog?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123 # jpa configuration
# 更新或者创建数据库表结构
spring.jpa.hibernate.ddl-auto=update
# 控制台打印sql语句
spring.jpa.show-sql=true
spring.jpa.open-in-view=false # log configuration
logging.level.root=info

3)编写一个实体类(bean)和数据表进行映射,并且配置好映射关系

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank; /**
* 使用JPA注解配置映射关系
* Created by zxf on 2019年9月30日
*/
@Entity // 告诉JPA这是一个实体类(和数据库映射的类)
@Table(name = "t_type") // @Table来指定和哪个数据表对应,如果省略默认表名就是类名首字母小写
public class Type {
@Id // 表明这是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY) // 自增主键
private Long id; @Column(name = "last_name", length = 50) // 这是和数据表对应的一个列,省略默认列名就是属性名
private String name;
}

3)编写一个Dao接口来操作实体类对应的数据表

import org.springframework.data.jpa.repository.JpaRepository;

/**
* Created by zxf on 2019年10月1日
*/
// 第一个泛型表示操作的类是Type,第二个泛型Long表示Type的主键id为Long类型
public interface TypeRepository extends JpaRepository<Type, Long> {
// 定义自己的方法
Type findTypeByName(String name);
}

4)service层调用测试

import java.util.List;
import java.util.Optional; import javax.transaction.Transactional; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import com.fei.NotFoundException;
import com.fei.po.Type;
import com.fei.repository.TypeRepository;
import com.fei.service.TypeService; /**
* Created by zxf on 2019年10月1日
*/
@Service
@Transactional
public class TypeServiceImpl implements TypeService { @Autowired
private TypeRepository typeRepository; /**
* 保存一个分类
*
* @param type
* @return
*/
@Override
public Type saveType(Type type) {
return typeRepository.save(type);
} /**
* 根据id获得一个分类对象
*
* @param id
* @return
*/
@Override
public Type getType(Long id) {
return typeRepository.findById(id).get();
} /**
* 根据分页参数查询一个分类列表
*
* @param pageable
* @return
*/
@Override
public Page<Type> listType(Pageable pageable) {
return typeRepository.findAll(pageable);
} /**
* 更新分类
*
* @param id
* @param type
* @return
*/
@Override
public Type updateType(Long id, Type type) {
Type t = typeRepository.findById(id).get(); if (t == null) {
throw new NotFoundException("类型不存在");
}
BeanUtils.copyProperties(type, t); return typeRepository.save(t);
} /**
* 根据id删除一个分类
*
* @param id
*/
@Override
public void deleteType(Long id) {
typeRepository.deleteById(id);
} /**
* 根据名字查询一个分类对象
*
* @param name
* @return
*/
@Override
public Type getTypeByName(String name) {
return typeRepository.findTypeByName(name);
} /**
* 不带参数的查询所有分类
*
* @return
*/
@Override
public List<Type> listType() {
return typeRepository.findAll();
} }

Spring Boot 整合Spring Data JPA的更多相关文章

  1. Spring boot 整合spring Data JPA+Spring Security+Thymeleaf框架(上)

    近期上班太忙所以耽搁了给大家分享实战springboot 框架的使用. 以下是spring boot 整合多个框架的使用. 首先是准备工作要做好. 第一  导入框架所需的包,我们用的事maven 进行 ...

  2. spring boot整合spring Data JPA和freemarker

    1.spring Data JPA简介 是一个替代hibernate的一个作用于数据库的框架. 2.整合 1.导入依赖 <dependency> <groupId>org.sp ...

  3. Spring Boot整合Spring Data JPA

    1.JPA 2.Spring Data JPA 3.导入依赖 4.连接数据库 5.实体类 6.Repository 7.测试 1.JPA JPA是Java Persistence API的简称,中文名 ...

  4. Spring Boot 整合Spring Data以及rabbitmq,thymeleaf,向qq邮箱发送信息

    首先得将自己的qq开启qq邮箱的POP3/SMTP服务 说明: p,e为路由key. 用户系统完成登录的时候,将{手机号-时间-IP}保存到队列Phone-queue中,msg-sys系统获得消息打印 ...

  5. Spring Boot整合Spring Security

    Spring Boot对于该家族的框架支持良好,但是当中本人作为小白配置还是有一点点的小问题,这里分享一下.这个项目是使用之前发布的Spring Boot会员管理系统重新改装,将之前filter登录验 ...

  6. Spring Boot整合Spring Security自定义登录实战

    本文主要介绍在Spring Boot中整合Spring Security,对于Spring Boot配置及使用不做过多介绍,还不了解的同学可以先学习下Spring Boot. 本demo所用Sprin ...

  7. Spring Boot整合Spring Security总结

    一.创建Spring Boot项目 引入Thymeleaf和Web模块以及Spring Security模块方便进行测试,先在pom文件中将 spring-boot-starter-security ...

  8. Spring Boot整合Spring Batch

    引言 Spring Batch是处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定的处理后输出指定的形式.比如我们可以将csv文件中的数据(数据量几百万甚至几千万都是没问题的)批处理插入保 ...

  9. Spring Boot整合Spring Session实战

    传统java web应用session都是由应用服务器(如tomcat)保存在内存中,这对应但节点应用来说没问题:但对于应用集群来说会造成各节点之间的session无法共享,一个节点挂掉后,其他节点接 ...

随机推荐

  1. 2014过去了,正式步入职场了,.net

    一.第一家公司(北京XXXXXXX) 从2014年7月1号拿到学位证,到7月15号到北京,努力找工作,用了两个多礼拜,终于找到了一个只有三个人的公司,愿意要我,薪资是实习三千,转正四千. 2014年7 ...

  2. python - assert 断言 语句

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单. 用法:在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行时崩溃,不如在出现 ...

  3. Spring bean的自动装配属性

    bean的自动装配属性能简化xml文件配置. bean 的自动装配属性分为四种: 1.byName 2.byTyoe 3.constructor 4. autodetect byName: 它查找配置 ...

  4. MinGW GCC 9.1 2019年5月3日 出炉啦

    GNU 2019-05-03 发布了 GCC 9.1 https://gcc.gnu.org/onlinedocs/9.1.0/ 有详细的说明MinGW 上可用的 GCC 9.1 版本下载地址 [ m ...

  5. lua 十进制转二进制

    -- Converts a byte to a string of 0s and 1s. function byte2bin(n) local t = {} for i=7,0,-1 do t[#t+ ...

  6. Linux的远程桌面折腾指南

    因为实验服务器需要远程提供给研一童鞋使用,这两天折腾了一下Linux的远程桌面,在此记录总结一下.服务器系统为Lubuntu 16.04 远程登录到Linux 方案一:简单使用--x11vnc 单用户 ...

  7. 算法之美&数据结构与算法复习

    1.归并两个有序链表(归并排序) 2.最小路径和--BP解法 3.计算int sqrt(x)--二分解法 4.趣味面试题 5.跳步游戏(Jump_Game)--后向回溯算法 6.Excel列号转十进制 ...

  8. 6.文件所有权和权限----免费设置匿名----Windows键盘记录器----简介和python模块

    文件所有权和权限 touch --help cd Desktop mkdir Folder cd Folder clear touch Test1 Test2 Test3 Test4 ls ls -l ...

  9. spark 2.3.3 的MLlib 使用API

    1.api官网 http://spark.apache.org/docs/2.3.3/ml-guide.html

  10. JavaScript Return Object.Type

    var getType = function(obj) { if (obj == null) { return String(obj); } return typeof obj === 'object ...