从无到有Springboot整合Spring-data-jpa实现简单应用
本文介绍Springboot整合Spring-data-jpa实现简单应用
Spring-data-jpa是什么?这不由得我们思考一番,其实通俗来说Spring-data-jpa默认使用hibernate,使用Spring-data-jpa这样的技术,它实现了模板Dao层,只需要在Dao,通过继承一个接口,就可轻松完成“增删改查,所以本质就是springboot和hibernate的整合,已经有了hibernate为什么还要Spring-data-jpa!!!其实开发jpa和开发hibernate的居然是同一个作者...emmmm...
话不多说开始实施!
一、创建Springboot项目添加相关依赖:(大家可以参考我这篇文章创建Springboot项目哦!)
https://www.cnblogs.com/bgyb/p/12070279.html
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--MySQL依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- spring-data-jpa依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
二、配置application.yml进行配置:(注意层级关系,按住Ctrl键,移动到属性上面鼠标键变为小手形状则为正确)
spring:
datasource:
url: jdbc:mysql://localhost:3306/easybuy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
jpa:
hibernate:
ddl-auto: update #启动应用,自动的去数据库帮我们创建表
show-sql: true #显示sql
三、创建实体类(entity)、数据接口(mapper)、拦截器(controller)
实体类(entity):
import org.springframework.boot.autoconfigure.domain.EntityScan; import javax.persistence.*; //使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name="user") //@Table来指定和哪个数据表对应;如果省略默认表名就是user
public class User {
@Id //表示主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //设置主键
private Integer id; @Column(name = "u_name") //这是和数据表对应的一个列,如果注解中name不指定,表中列名默认和属性名一样
private String name; @Column(name = "u_email")
private String email; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
}
}
数据接口(mapper):
import com.poje.myspringjpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository; //继承JpaRepository来完成对数据库的操作,指定javabean类型,其javabean主键属性类型
public interface UserMapper extends JpaRepository<User,Integer> { //方法体内可自定义方法进行操作 }
拦截器(controller):
import com.poje.myspringjpa.entity.User;
import com.poje.myspringjpa.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller
public class UserController {
@Autowired
UserMapper userMapper; //注入mapper层 //根据id查询,查询单个
@RequestMapping("/hello/{id}")
@ResponseBody
public User hello(@PathVariable("id") Integer id){
// User user = userMapper.findOne(id); Spring Boot2.0.0以上本版本,把findOne(id)改成findById(id).get()
User user = userMapper.findById(id).get(); //jpa自带查询方法
return user;
} //查询全部
@RequestMapping("/findAll")
@ResponseBody
public List<User> findAll(){
List<User> list =userMapper.findAll();//jpa自带查询方法
return list;
} }
四、完成以上配置后即可启动Springboot项目:
从控制台我们可以看出Spring-data-jpa帮我们执行了创建表语句,我们可以去数据库查看一番。。。
如图所示数据库表已经创建成功:
我们创建几条数据到表中,接着去打开浏览器,输入url:http://localhost:8080/hello/2,可以看到结果和控制台的sql语句。
浏览器端效果如下:
至此Springboot整合jpa实现简单创表及查询已经都实现了,实现了的小伙伴都非常奈斯!(晚上给自己加个鸡腿)
本人寄语:写博客希望记录当下,学习是永无止境的!努力成为IT界中的清流!
从无到有Springboot整合Spring-data-jpa实现简单应用的更多相关文章
- springboot整合spring Data JPA
今天敲代码,一连串的错误,我也是服气~果然,我们不是在出bug,就是在找bug的路上…… 今天完成的是springboot整合spring data JPA ,出了一连串的错,真是头大 java.sq ...
- springboot整合spring data jpa 动态查询
Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询,在实现动态查询时我们需要用到Criteria API,主要是以下三个: 1.Criteria ...
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
软件152 尹以操 首先谢谢大佬的简书文章:http://www.jianshu.com/p/45ad65690e33# 这篇文章中讲的是spring中使用spring data jpa,使用了xml ...
- spring-boot (三) spring data jpa
学习文章来自:http://www.ityouknow.com/spring-boot.html spring data jpa介绍 首先了解JPA是什么? JPA(Java Persistence ...
- Spring data jpa 实现简单动态查询的通用Specification方法
本篇前提: SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法 这篇文章中的第二种方法 实现Specification 这块的方法 只适用于一个对象针对某一个固定字 ...
- Spring Boot从入门到精通(九)整合Spring Data JPA应用框架
JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. ...
- Spring Boot 整合Spring Data JPA
Spring Boot整合Spring Data JPA 1)加入依赖 <dependency> <groupId>org.springframework.boot</g ...
- SpringBoot第九篇:整合Spring Data JPA
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10910059.html 版权声明:本文为博主原创文章,转载请附上博文链接! 前言 前面几章, ...
- Spring整合Hibernate实现Spring Data JPA (简单使用)
直接上代码: pom.xml <!-- hibernate start --> <!-- spring data jpa --> <dependency> < ...
- Spring boot 整合spring Data JPA+Spring Security+Thymeleaf框架(上)
近期上班太忙所以耽搁了给大家分享实战springboot 框架的使用. 以下是spring boot 整合多个框架的使用. 首先是准备工作要做好. 第一 导入框架所需的包,我们用的事maven 进行 ...
随机推荐
- [Inno Setup] 安装完成后调用函数
如果使用了通配符,每拷贝一个文件,函数都会被调用一次. Source: "path\test.exe"; DestDir: {app}; AfterInstall: LoadPer ...
- java 8中 predicate chain的使用
目录 简介 基本使用 使用多个Filter 使用复合Predicate 组合Predicate Predicate的集合操作 总结 java 8中 predicate chain的使用 简介 Pred ...
- 痞子衡嵌入式:揭秘i.MXRT1170 eFuse空间访问可靠性的保护策略(冗余与ECC)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MXRT1170的eFuse空间访问可靠性保护策略. 关于i.MXRT系列的eFuse/OTP,痞子衡之前在介绍Boot时写过 ...
- nginx响应超时upstream timed out 问题处理
环境介绍 服务器:centos7.2 应用:tomcat集群 服务:nginx 代理 问题描述: 这段时间,听项目组项目经理和业务需求人员跟我反馈,线上业务人员在操作业务交易时,有时会出现nginx错 ...
- bootstrap-分页-默认分页
说明 默认分页 示例 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta c ...
- 最短路径树:Dijstra算法
一.背景 全文根据<算法-第四版>,Dijkstra算法.我们把问题抽象为2步:1.数据结构抽象 2.实现 二.算法分析 2.1 数据结构 顶点+边->图.注意:Dijkstra ...
- Qt源码解析之-从PIMPL机制到d指针
一.PIMPL机制 PIMPL ,即Private Implementation,作用是,实现 私有化,力图使得头文件对改变不透明,以达到解耦的目的 pimpl 用法背后的思想是把客户与所有关于类的私 ...
- Appium+Python-项目实践一
一.前言 前面讲了环境搭建和常用的元素定位,后续会持续以项目实践的方式去慢慢学习以及整理各方面的知识点,具体不会详细阐述,但会贴上完整代码,想要了 ...
- 《C程序设计语言》 练习2-4
问题描述 重新编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中字符匹配的字符都删除. Write an alternate version of squeeze(s1,s2) t ...
- ubuntu文件系统修改( for arm)
系统:ubuntu14.04 镜像:ubuntu-rootfs.img for aarch64 创建一个文件夹 ubuntu-mount mkdir ubuntu-mount 将ubuntu-root ...