1) 引入jar包支持

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> <!-- 数据库支持 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

2)数据库表

 3)java实体

  注意,框架本身并不能识别转换驼峰和下划线,必须使用注解 @Column(name = "user_id") 映射出正确的字段名

  别忘了再类头上加上注解 @Table(name = "user") 指定数据库名称

 @Entity
@Table(name = "user")
public class UserModel {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId ; @Column(name = "user_name")
private String userName ; private Integer age ;
// get set 略
}

4 ) 生成 DAO 层接口

  注意此时生成的是 dao 接口并不是 类。 在继承了框架提供的 接口 JpaRepository<  实体名 , 主键类型  > , JpaSpecificationExecutor< 实体名  >, Serializable 后

  所有简单的 CRUD 都可以调用父接口中的方法, 此时 简单的CRUD 已经可以实现 , 具体见下文 service  层

  PS。接口中有自定义方法 findUserByUserName() 方法在下文说明。

public interface UserJpa extends
JpaRepository<UserModel, Integer> ,
JpaSpecificationExecutor<UserModel>,
Serializable{ UserModel findUserByUserName(String userName);
}

5 ) service 层 对dao层的调用

 /**
*
* @作者 陈先生
* @创建时间 2018年7月17日
* @功能描述 user service层
*/
@Service
public class UserService { @Autowired
private UserJpa userJpa; public UserModel getUserModel(Integer id) {
return userJpa.findById(id).get();
} public UserModel saveUserModel(UserModel user) {
return userJpa.saveAndFlush(user);
} public String delUserById(Integer id) { userJpa.deleteById(id);
return "delete model success";
} public UserModel findUserByName(String userName) { return userJpa.findUserByUserName(userName);
} }

根据以上步奏,已经可以简单实现对数据库的简单crud操作。

-----------------------------------------------------------------------------------------------------------------------------------

  条件查询 接口中只默认给出了 根据ID 主键来做条件查询,代码jpa层 添加了自定义方法findUserByUserName() .。 在调用的时候也可以直接

调用不需要实现, 详解见后文。

Spring Data JPA -1-CRUD入门的更多相关文章

  1. 【ORM框架】Spring Data JPA(一)-- 入门

    本文参考:spring Data JPA入门   [原创]纯干货,Spring-data-jpa详解,全方位介绍  Spring Data JPA系列教程--入门 一.Spring Data JPA介 ...

  2. spring data jpa(一)

    第1章     Spring Data JPA的快速入门 1.1   需求说明 Spring Data JPA完成客户的基本CRUD操作 1.2   搭建Spring Data JPA的开发环境 1. ...

  3. 尝试Spring Data Jpa--告别CRUD

    前言 说到我们的web开发架构分层中,持久层是相对底层也是相对稳定的一层,奠定好根基后,我们才能专注于业务逻辑和视图开发.而自从ORM思想蔓延开来后,全自动ORM的Hibernate和半自动ORM的M ...

  4. spring boot学习(4) SpringBoot 之Spring Data Jpa 支持(1)

    第一节:Spring Data Jpa 简介 Spring-Data-Jpa JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate ...

  5. SpringBoot系列之Spring Data Jpa集成教程

    SpringBoot系列之Spring Data Jpa集成教程 Spring Data Jpa是属于Spring Data的一个子项目,Spring data项目是一款集成了很多数据操作的项目,其下 ...

  6. SpringBoot整合持久层技术--(三)Spring Data JPA

    简介: JPA(java Persistence API)和SpringData是两个范畴的概念.spring data jpa是spring公司下的spring data项目的一个模块. sprin ...

  7. SpringBoot总结之Spring Data Jpa

    一.Spring Data Jpa简介 JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate.TopLink等. Spring D ...

  8. Spring Data JPA —— 快速入门

    一.概述 JPA : Java Persistence API, Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. Spring D ...

  9. Spring Data Jpa 入门学习

    本文主要讲解 springData Jpa 入门相关知识, 了解JPA规范与Jpa的实现,搭建springboot+dpringdata jpa环境实现基础增删改操作,适合新手学习,老鸟绕道~ 1. ...

  10. Spring Data JPA入门及深入

    一:Spring Data JPA简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问 ...

随机推荐

  1. 创建文件和修改时间戳——touch

    linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a    ...

  2. 响应式设计:根据不同设备引不同css样式

    <link rel="stylesheet" media="screen and (max-width:600px)" href="small. ...

  3. poj 2420(模拟退火)

    A Star not a Tree? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6066   Accepted: 285 ...

  4. office 文档转pdf

    本地先安装 金山wps,并确保可用 工程目录 1.使用前,先执行install.bat 安装jacob 到maven本地仓库 2.复制 jacob-1.18-M2-x64.dlljacob-1.18- ...

  5. Python全栈开发之1、输入输出与流程控制

    Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...

  6. 二十二 使用__slots__

    正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Student(object): pa ...

  7. poj1915 Knight Moves(BFS)

    题目链接 http://poj.org/problem?id=1915 题意 输入正方形棋盘的边长.起点和终点的位置,给定棋子的走法,输出最少经过多少步可以从起点走到终点. 思路 经典bfs题目. 代 ...

  8. Python加密模块-pycryptodome

    这个模块可以避开Pycrypto安装时带来的一系列包依赖问题. 安装命令: pip install pycryptodome 使用实例: from Crypto.Cipher import AES k ...

  9. Mybatis源码分析之参数处理

    Mybatis对参数的处理是值得推敲的,不然在使用的过程中对发生的一系列错误直接懵逼了. 以前遇到参数绑定相关的错误我就是直接给加@param注解,也稀里糊涂地解决了,但是后来遇到了一些问题推翻了我的 ...

  10. PBR Step by Step(一)立体角

    转载请注明出处:http://www.cnblogs.com/jerrycg/p/4924761.html  本系列从零起步,作为学习笔记与大家分享,从基础的数学和图形理论,一步一步实现基于物理的渲染 ...