九.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);
    }
}
时间: 2024-12-13 08:45:52

九.Spring Boot JPAHibernateSpring Data的相关文章

全网首套Spring Boot视频教程下载带源码

课程目录及下载地址:01.Spring Boot之Hello World_高清.mp4 02.spring boot返回json数据_高清.mp4 03.Spring Boot完美使用FastJson解析JSON数据_高清.mp4 04.Spring Boot热部署(springloader)_高清.mp4 05.springboot + devtools(热部署)_标清.flv 06.Spring Boot JPAHibernateSpring Data概念_标清.flv 07.Spring

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

Spring Boot Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一: Spring Boot.Spring MVC 和 Spring 有什么区别? SpringFrame SpringFramework 最重要的特征是依赖注入.所有 SpringModules 不是依赖注入就是 IOC 控制反转. 当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用.松耦合应用的单元测试可以很容易的进行. Spr

Spring Boot Cookbook 中文笔记

Spring Boot Cookbook 一.Spring Boot 入门 Spring Boot的自动配置.Command-line Runner RESTful by Spring Boot with MySQL Spring Boot:Data Rest Service 二.配置Web应用 Spring Boot:定制servlet filters Spring Boot:定制拦截器 Spring Boot:定制HTTP消息转换器 Spring Boot:定制PropertyEditors

Spring Boot入门第二天:一个基于Spring Boot的Web应用,使用了Spring Data JPA和Freemarker。

今天打算从数据库中取数据,并展示到视图中.不多说,先上图: 第一步:添加依赖.打开pom.xml文件,添加必要的依赖,完整代码如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q

Spring Data JPA例子[基于Spring Boot、Mysql]

关于Spring Data Spring社区的一个顶级工程,主要用于简化数据(关系型&非关系型)访问,如果我们使用Spring Data来开发程序的话,那么可以省去很多低级别的数据访问操作,如编写数据查询语句.DAO类等,我们仅需要编写一些抽象接口并定义相关操作即可,Spring会在运行期间的时候创建代理实例来实现我们接口中定义的操作. 关于Spring Data子项目 Spring Data拥有很多子项目,除了Spring Data Jpa外,还有如下子项目. Spring Data Comm

Spring Boot教程35——Spring Data JPA

Hibernate是数据访问解决技术的绝对霸主.JPA是由Hibernate主导的一个基于O/R映射的标准规范.O/R映射即将领域模型类和数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无须关注数据库相关的技术. Spring Data JPA介绍 1.定义数据访问层 使用Spring Data JPA建立数据访问层十分简单,只需定义一个继承JpaRepository的接口即可: public interface PersonRepository extends Jpa

Spring Boot与Spring Data JPA

1.创建实体类bean package com.example.bean; import javax.persistence.*; @Table(name="grade") @Entity public class Grade { @Id @GeneratedValue(strategy = GenerationType.AUTO)//id和GeneratedValue必须同时使用 private int id; private String gradeNM; private int

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

最近上班太忙所以耽搁了给大家分享实战springboot 框架的使用. 下面是spring boot 整合多个框架的使用. 首先是准备工作要做好. 第一  导入框架所需的包,我们用的事maven 进行对包的管理. 以上的举例是本人的H5DS的真实的后台管理项目,这个项目正在盛情融资中,各位多多捧点人场.关注一下软件发展的动态,说不定以后就是您的生活不可或缺的软件哟. 点击打开链接.闲话少说.现在切入正题. 第二,写点配置文件 第三,spring data -设计一个简单的po关系,这里需要下载一

Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控

文章目录 1. 快速开始 2. 监控和管理端点3. 定制端点 2.1. health 应用健康指标 2.2. info 查看应用信息 2.3. metrics 应用基本指标 2.4. trace 基本的HTTP跟踪信息 2.5. shutdown关闭当前应用 4. 源代码 Spring Boot 提供运行时的应用监控和管理功能.本文,我们通过 HTTP 实现对应用的监控和管理. 快速开始 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖