简单才是美! SpringBoot+JPA

SpringBoot 急速构建项目,真的是用了才知道,搭配JPA作为持久层,一简到底! 下面记录项目的搭建,后续会添加NOSQL redis,搜索引擎elasticSearch,等等,什么不过时就加什么。

开发工具idea、项目构建gradle、模板引擎thymeleaf

项目构建

1.【new】 -> 【product】 -> 选择Spring Initializr -> 【next】

2.填写Group,Artifact,Type ->【next】

3.导包

  1. 1.左边选择Web右边勾选Web 2.左边选择SQL右边勾选JPA 3.左边选择SQL右边勾选mysql 4.左边选择Template Engines右边勾选Thymeleaf 5.【next】->【finish】

好了 现在的项目结构

BootjpaApplication 是项目的启动类 resources/templates/ 文件夹是放页面的 build.gradle 存放jar包坐标

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update

@RestController

配置完成,写个controller试试看

@RestController
public class HelloBootController {

    @RequestMapping("helloBoot")
    public String helloBoot(){
        return "Hello Boot-JPA";
    }
}

在BootjpaApplication文件上启动

@RestController注解,代替@Controller+@@ResponseBody 那么返回页面就直接用@Controller就好了

现在JPA登场


db

注解和hibernate一样。

@Entity
public class User {

    private long id;
    private String name;
    private String passWord;
    private  String email;

    @Id
    @GeneratedValue
    public long getId() {
        return id;
    }
    。。。。。
  }

现在,就是见证奇迹的时刻!

dao

dao层继承JpaRepository即可

public interface UserRepository extends JpaRepository<User,Long> {
}

什么!这就完了??对,低调

controller

controller层,service层跳过。

@Controller
public class HelloBootController {

    @Autowired
    UserRepository userRepository;

    @RequestMapping("/toHello")
    public String toHello(ModelMap modelMap){
        userRepository.save(new User("Mshu","123456","zhuiqiu95@foxmail.com"));
        List<User> users = userRepository.findAll();
        modelMap.put("users",users);
        return "helloBoot";
    }
}

thymeleaf


至于页面,默认是在resources/templates/下的html,试图解析器已经配置默认配置好的。

前缀:resources/templates/
后缀:html

那我们就在resources/templates/下新建一个html页面 注意<html xmlns:th="http://www.thymeleaf.org " lang="en">引入thymeleaf 用到了thymeleaf语法遍历。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"  lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<table >
    <tr th:each="user,userState : ${users}">
        <td style="border: 1px solid seagreen" th:text="${user.name}"></td>
        <td style="border: 1px solid seagreen" th:text="${user.passWord}"></td>
        <td style="border: 1px solid seagreen" th:text="${user.email}"></td>
    </tr>
</table>
</body>
</html>

启动,输入地址,回车!

精彩回顾

刚刚dao层明明只写了一个接口没有写任何方法,怎么就能调用save(),findAll()呢, 对JPA默认了许多基础增删改查方法,直接调用即可。 怎么写除了默认给出的方法以外怎么写呢,

public interface UserRepository extends JpaRepository<User,Long> {
    User findByName(String name);
}

调用的话直接

User user = userRepository.findByName("Mshu");

那么怎么做的映射的,它怎么知道我的参数name对应表里的name,原来名字一样就可以映射,好像很有道理 没错就那么简单,这种写法太hibernate了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

第9章 Spring Boot开发者工具第9章 Spring Boot开发者工具

Spring Boot Maven Plugin,提供了使用Maven构建Spring Boot 工程的支持。我们可以用这个插件完成打包功能。支持打可执行jar...

2062
来自专栏Java后端技术

使用Spring整合Quartz轻松完成定时任务

  上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步...

783
来自专栏CodeSheep的技术分享

从SpringBoot到SpringMVC

用久了SpringBoot,深受其约定大于配置的便利性毒害之后,我想回归到SpringMVC时代,看看SpringMVC开发模式中用户是如何参与的。本文就来体验...

1768
来自专栏pangguoming

Spring Boot 直接用jar运行项目

1486
来自专栏好好学习吧

linux基础学习整理

1124
来自专栏Java 源码分析

SpringBoot 笔记 ( 一 ):启动流程

SpringBoot 笔记(一): 启动流程 1. 配置开发环境 1. 创建 Maven 项目 然后我们首先在项目里面加上编译环境,防止每一次更新 Maven ...

3064
来自专栏个人分享

Spring技术揭幕----DispatcherServlet

Spring MVC是一个MVC模式的实现。在Spring MVC的使用中,需要在web.xml中配置DispatcherServlet,也就是说其核心是一个S...

1394
来自专栏服务端技术杂谈

Spring MVC 学习笔记

1.Sping mvc的启动原理: spring mvc是基于ioc容器的,因此需要先创建ioc容器,才能创建对应的spring mvc执行环境。 ...

3568
来自专栏一个会写诗的程序员的博客

第4章 零XML配置的Spring Boot Application小结

Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同...

1074
来自专栏dalaoyang

SpringBoot集成FreeMarker

给大家简单介绍一下springboot 集成FreeMarker 过程很简单,5分钟即可。 首先在项目中增添依赖spring-boot-starter-free...

40110

扫码关注云+社区

领取腾讯云代金券