九.Spring Boot JPAHibernateSpring Data
1、项目结构

2、导入jar包
<!-- 添加Spring-data-jpa依赖. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
3、添加并编辑 文件:application.properties

spring.datasource.url = jdbc:mysql://localhost:3306/AppleforWindows_test1?characterEncoding=utf8&useSSL=true
说明:5.7的mysql必须加入:characterEncoding=utf8&useSSL=true
spring.datasource.username = root
spring.datasource.password = AppleforWindows
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
自动在数据库创建table表
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
4、添加实体类set\get
package com.ld.bean; import java.util.Date; import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id; import com.alibaba.fastjson.annotation.JSONField; /*创建了一个实体类。
*
* 如何持久化呢?
*
* 1、使用@Entity进行实体类的持久化操作,当JPA检测到我们的实体类当中有
*
* @Entity 注解的时候,会在数据库中生成对应的表结构信息。
*
*
* 如何指定主键以及主键的生成策略?
*
* 2、使用@Id指定主键.*/
@Entity
public class SysUser { /*设置为主键*/
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String name;
private String phone;
private String mail;
@JSONField(format="yyyy-MM-dd HH:mm")
private Date createTime;
private String remark;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
} }
6、创建server
提示:可根据自定义查看(DAORepository 接口并继承 CrudRepository<T, Integer>该类的源码)
package com.ld.service; import javax.annotation.Resource;
import javax.transaction.Transactional; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import com.ld.bean.SysUser;
import com.ld.repository.SysUserRepository; @Service("sysUserService")
public class SysUserService {
static final Logger logger = LoggerFactory.getLogger(SysUserService.class); @Resource
private SysUserRepository sysUserRepository; public Iterable<SysUser> findAll() {
logger.info("=>:findAll");
return sysUserRepository.findAll();
} public SysUser findOne(Integer id) {
logger.info("=>:findOne");
return sysUserRepository.findOne(id);
} @Transactional
public SysUser save(SysUser sysUser) {
logger.info("=>:save");
return sysUserRepository.save(sysUser);
} public long count() {
logger.info("=>:count");
return sysUserRepository.count();
}
@Transactional
public void delete(Integer id) {
logger.info("=>:delete");
sysUserRepository.delete(id);
}
}
7、测试controller
package com.ld.controller; import java.util.Date; import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView; import com.ld.bean.SysUser;
import com.ld.service.SysUserService;
import com.ld.util.CommonTool; @RestController
@RequestMapping("sysUserWeb")
public class SysUserWeb {
@Resource
private SysUserService sysUserService;
@RequestMapping("/index")
public ModelAndView index(){
ModelAndView mv = new ModelAndView("redirect:AmazeUI/error.html");
return mv;
}
@RequestMapping("/getAll")
@ResponseBody
public Iterable<SysUser> getAll(){
return sysUserService.findAll();
}
@RequestMapping("/save")
@ResponseBody
public SysUser save(){
SysUser sysUser = new SysUser();
sysUser.setName(CommonTool.getRandomString(6));
sysUser.setPhone(CommonTool.getRandomPhone());
sysUser.setMail(CommonTool.getRandomMail());
sysUser.setCreateTime(new Date());
sysUserService.save(sysUser);
return sysUser;
}
@RequestMapping("/queryOne")
@ResponseBody
public SysUser queryOne(){
return sysUserService.findOne(1);
}
}
九.Spring Boot JPAHibernateSpring Data的更多相关文章
- Spring Boot2 系列教程(二十九)Spring Boot 整合 Redis
经过 Spring Boot 的整合封装与自动化配置,在 Spring Boot 中整合Redis 已经变得非常容易了,开发者只需要引入 Spring Data Redis 依赖,然后简单配下 red ...
- Spring Boot2 系列教程(九)Spring Boot 整合 Thymeleaf
虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板, ...
- Spring Boot2 系列教程(十九)Spring Boot 整合 JdbcTemplate
在 Java 领域,数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate .有 MyBatis,还有 JPA,在这些方案中,最简单的就是 Spring 自带的 JdbcTem ...
- Java精选面试题之Spring Boot 三十三问
Spring Boot Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一: Spring Boot.Spring MVC 和 ...
- Spring Boot Cookbook 中文笔记
Spring Boot Cookbook 一.Spring Boot 入门 Spring Boot的自动配置.Command-line Runner RESTful by Spring Boot wi ...
- Spring Boot2 系列教程(二十)Spring Boot 整合JdbcTemplate 多数据源
多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...
- Spring Boot从入门到精通(九)整合Spring Data JPA应用框架
JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. ...
- spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的? 消息中间件在解决异步处理,模块间解耦和,和高流量场景的削峰,等情况下有着很广泛的应用 . 本文将跟大家一起 ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
随机推荐
- Android UI 设计:pixel dip dpi sp density
1. px (pixels)像素 – 是像素,就是屏幕上实际的像素点单位. dip或dp (device independent pixels)设备独立像素,与设备屏幕有关. sp (scaled p ...
- mybatis 一级缓存和二级缓存
1.默认是会话期内 一级session缓存 2.二级缓存: 引入二级缓存的jar, 配置 ehcache.xml, mapper.xml引入缓存<cache type="org.myb ...
- ltsdangerous加密解密
前言 在做QQ第三方登录时,用户跳转到QQ登录界面登录成功后,会在URL返回一个code参数.前端把code发送给后端.后端收到后,会查询出openid.然后判断openid是否存在,如果存在就可以绑 ...
- 【mongo】用户添加、导入数据库、连接VUE
添加用户 1.安装mongo时最好用apt-get install 因为这样可以省去很多麻烦,比如一些环境变量,还有一些文档路径等等的问题 2.确认一下自己的mongodb和mongodb-clie ...
- POJ-2594
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 7035 Accepted: 2 ...
- LeetCode解题报告—— Maximal Rectangle
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and ...
- Word Search——经典题(还没细看)
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- 继续ajax长轮询解决方案--递归
如果使用for,会有一种情况发生,就是ajax的执行会大于其他的动作的执行,那么这样的一段代码就不能实现了 for(var i=0;i<20;i++){ console.log('你好') $. ...
- Codeforces 1 C. Ancient Berland Circus-几何数学题+浮点数求gcd ( Codeforces Beta Round #1)
C. Ancient Berland Circus time limit per test 2 seconds memory limit per test 64 megabytes input sta ...
- 洛谷P3539 [POI2012] ROZ-Fibonacci Representation
题目传送门 转载自:five20,转载请注明出处 本来看到这题,蒟蒻是真心没有把握的,还是five20大佬巨orz 首先由于斐波拉契数的前两项是1,1 ,所以易得对于任何整数必能写成多个斐波拉契数加减 ...