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的更多相关文章

  1. Spring Boot2 系列教程(二十九)Spring Boot 整合 Redis

    经过 Spring Boot 的整合封装与自动化配置,在 Spring Boot 中整合Redis 已经变得非常容易了,开发者只需要引入 Spring Data Redis 依赖,然后简单配下 red ...

  2. Spring Boot2 系列教程(九)Spring Boot 整合 Thymeleaf

    虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板, ...

  3. Spring Boot2 系列教程(十九)Spring Boot 整合 JdbcTemplate

    在 Java 领域,数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate .有 MyBatis,还有 JPA,在这些方案中,最简单的就是 Spring 自带的 JdbcTem ...

  4. Java精选面试题之Spring Boot 三十三问

    Spring Boot Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一: Spring Boot.Spring MVC 和 ...

  5. Spring Boot Cookbook 中文笔记

    Spring Boot Cookbook 一.Spring Boot 入门 Spring Boot的自动配置.Command-line Runner RESTful by Spring Boot wi ...

  6. Spring Boot2 系列教程(二十)Spring Boot 整合JdbcTemplate 多数据源

    多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...

  7. Spring Boot从入门到精通(九)整合Spring Data JPA应用框架

    JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. ...

  8. spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?

    spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的? 消息中间件在解决异步处理,模块间解耦和,和高流量场景的削峰,等情况下有着很广泛的应用 . 本文将跟大家一起 ...

  9. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

随机推荐

  1. js获取鼠标的位置

    <!doctype html><html><head><meta charset="utf-8"><title>获取鼠标 ...

  2. Content to Node: Self-Translation Network Embedding

    paper:https://dl.acm.org/citation.cfm?id=3219988 data & code:http://dm.nankai.edu.cn/code/STNE.r ...

  3. C++变量类型转换

    1:int转换为CString CString str; str.Format("As string: %d", int); 2:double转换为CString CString ...

  4. IntelliJ IDEA centos安装

    安装的时候注意: 不要装一个插件否则无法启动!!!

  5. [转] Socket心跳包异常检测的C语言实现,服务器与客户端代码案例

    转载自:zxh2075的专栏 在Socket心跳机制中,心跳包可以由服务器发送给客户端,也可以由客户端发送给服务器,不过比较起来,前者开销可能较大.本文实现的是由客户端给服务器发送心跳包,服务器不必返 ...

  6. resteasy json

    https://www.cnblogs.com/toSeeMyDream/p/5763725.html

  7. Hadoop 学习【一】 安装部署

    目标:测试Hadoop的集群安装 参考文档: [1]http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/Sin ...

  8. hbase+hadoop+hdfs集群搭建 集成spring

    序言 最近公司一个汽车项目想用hbase做存储,然后就有了这篇文字,来,来,来, 带你一起征服hbase,并推荐一本书<hbase权威指南> 这是一本极好的hbase入门书籍,我花了一个晚 ...

  9. C语言数据类型64位和32机器的区别

    C语言编程需要注意的64位和32机器的区别 .数据类型特别是int相关的类型在不同位数机器的平台下长度不同.C99标准并不规定具体数据类型的长度大小,只规定级别.作下比较: 32位平台 char:1字 ...

  10. 转:Awesome Vulnerability Research

    转:https://github.com/re-pronin/Awesome-Vulnerability-Research Awesome Vulnerability Research