JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎

上篇博客我们且了《JavaEE开发的SpringBoot工程的创立、运行和布局》,从上篇博客的情节我们不难看出SpringBoot的省心。本篇博客我们延续当上篇博客的根底及来拘禁一下SpringBoot是怎引入和行使MyBatis和Thymeleaf的。在前头的博客中我们干过Hibernate,今天博客所引入的Mybatis所饰演的角色跟Hibernate类似,都是平等仿照ORM框架,主要担负持久化的,也是拿数据库被的多寡直接照射为Model的框架。

设若Thymeleaf就是一个模板引擎了,与事先我们聊得PHP中之Smarty模板引擎类似。如果你们的Web工程是前后端分离之,那么即便用不着Thymeleaf等模板引擎了。本篇博客要召开的工作就是是当SpringBoot工程被引入MyBatis,然后经过MyBatis所提供的映照方法以及注解来读取数据库中之音讯。然后使Thymeleaf模板在前端进行数量的示。

我们事先在聊Swift开发服务端的情节,也便是Perfect框架时,用到了MySQL相关的东西。本篇博客我们即便使用Perfect框架之前所操作的数据库就执行了。关于Swift的Perfect框架的连锁内容,请走叫《Swift中的劳动端框架—Perfect》系列博客。因为之前聊过MySQL相关的事物了,本篇博客就无开过多废话了。关于MySQL的装置,请参见之前宣布的博客《macOS
Sierra安装Apache2.4+PHP7.0+MySQL5.7.16》。本篇博客,我们便管要放到Spring
Boot中之MyBatis和Thymeleaf上。

 

同、MyBatis的引入和用

1.配置pom文件

率先我们来拘禁一下哪些在Spring Boot中引入MyBatis。首先我们以http://mvnrepository.com/惨遭找到Mybatis
Spring Boot
Starter相关的Mvn仓库连接。如下所示,从下方截图中,我们不难看出,目前MyBatis Spring Boot
Starter的新式版本是1.2.0。不过本篇博客中我们运用的凡1.1.1本,因为我引入1.2.0继,我之SpringBoot工程从启动不了,于是换成1.1.1版本就OK了。

  图片 1

于pom.xml添加上下方的配备起,引入mybatis-spring-boot-starter和mysql-connector-java相关安排。mysql-connector-java顾明思议,就是连续MySQL数据库使用的依赖包。pom.xml中的部署如下。

        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>

 

 

2、配置MySQL数据库连接

为咱们使用的是Spring Boot引入的MyBatis, Mybatis Spring Boot
Starter会为我们举行多自动化的部署,比如SqlSessionFactory的开创等等。需要我们开的就是是以application.properties文件中开展数据库连接的有关安排即可。下方就是咱们于配置文件中增长的连年数据库的连锁消息。主要配备了数据库连接的不二法门,数据库的用户称和密码,数据库的教。

#Config MySQL Connect Info
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/perfect_note
spring.datasource.username=root
spring.datasource.password=admin!@#
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

 

 

3、创建Model类

紧接下去我们就是来创造数据库中之应和数据所而投的数额Model类。接下来我们就来操作perfect_note数据库中之content表,如下所示。下方数据库和数据库被的数量是我们前以聊Perfect框架时所利用的数目,本篇博客我们依旧对拖欠数据开展操作。

  图片 2

根据上述cotent表中之字段,我们来创造该表所对应的model类。下方是Content类就是我们所创造的content表所对应的Model。具体如下所示。

  图片 3

 

 

4.开立映射接口

连下去我们来创造数量库表与Model直接的照接口。在该接口中提供了数据以及Model直接的照射关系,并且提供了有关的SQL操作。下方的ContentMapper接口就是咱们创建的content表与ContentModel之间的映照关系。并且在该接口中的法子所对应之诠释中,提供了对应的SQL操作。

每当ContentMapper接口的query()方法中,该方法所对应之SQL语句是“select * from
content”,也就是是查询有content中之多少。@Results注解提供了数库表的字段与Model的特性的照关系。下方指定了发明字段”id”与”contentId”对应,字段名”create_time”与“createTime”属性相呼应,而非指定的就算是配段名与属于性名一致。

queryById()就是富含条件的询问方式了。其参数就是查询的标准化。通过@Param注解进行规范与参数的绑定。具体代码如下所示。

  图片 4

 

 

5、创建测试用的Controller

为省事期间,我们就算非创造DAO层了,就径直当Controller中来调用上述接口中之办法即可。下方是MyBatisTestController就是我们创建的所以来测试上述操作的测试控制器。当然我们拿拖欠控制器声明也@RestController以便我们针对该展开测试。然后下@Autowired注解注入ContentMapper类型的目标,我们得透过该目标来操作上述接口中所对应的道。queryContentById()方法,对应之是contentMapper中的queryById()方法,queryAll()方法对应之是Mapper中之query()方法,具体代码如下所示。

人间我们直接用得到到之Model或者Model数组进行返回,在Spring
Boot中,直接回的Model会为映射成相应的JSON格式的数额的,这个稍后我们见面直观的张。

  图片 5

 

6、访问上述路由于

俺们事先访问/queryContentById这个路由,再拜访这个路由时,我们而提供一个参数contentId。也就算是因此来查询数据的口径。下方截图中之结果虽是咱们本着contentId=6的尺度查询的结果。

  图片 6

搭下去我们来询问一下颇具的数目,也便是访问queryAll路出于。具体结果如下所示。

  图片 7

 

 

仲、Thymeleaf模板的引入和应用

点引入MyBatis算是相当了,以后的博客中尚会见延续本着MyBatis的有关物进行介绍。接下来我们尽管引入Thymeleaf模板,然后显示我们应用MyBatis读博到之系数据。下方我们就来拘禁一下在Spring Boot中凡如何整合Thymeleaf模板的

 

1、配置pom.xml文件

当pom.xml中补充加Thymeleaf在Spring Boot中有关的库,具体如下所示:

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>1.5.2.RELEASE</version>
        </dependency>

 

2、创建模板下的Controller

接着,我们虽来创造模板所对应的Controller,如下所示。下方我们仍然以注入的ContentMapper对象来获取数据。然后拿获得的数目增长到model对象被,在加上时,我们见面吧该数量对象指定一个参数名称,如下方的”contents”。然后回来模板页面即可,下方的“display”就是咱们模板页面所当的文件名称。

  图片 8

 

3、创建模板页面

下一场我们不怕该创建模板页面了,也便是此的display.html。下方就是display.html页面的有内容。其中我们呢数据的显得添加了有的css样式,并以CDN引入了当下风行版本的Bootstrap。下方带有“th:”前缀的性能就是Thymeleaf模板的竹签。

首先采取“th:if=”${not
#lists.isEmpty(contents)}””来判定contents属性所对应的价是否为空,如果非也空,则履行标签中的情。然后运th:if=”${not
#lists.isEmpty(contents)}”来举历contents中的始末,类似于while循环。通过th:each=”content:${contents}”取出每一样件的数。通过th:text=”${content.contentId}”取出某个属性的值。具体内容如下所示。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta content="text/html;charset=UTF-8"/>
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<title>Content</title>
</head>
<body>
    <div class="center-block" style="width:800px" th:if="${not #lists.isEmpty(contents)}">
        <div class="row"  style="height:50px; background-color: #000000; color: #ffffff">
          <div class="col-md-1">CotentId</div>
          <div class="col-md-2">Title</div>
          <div class="col-md-5">Cotent</div>
          <div class="col-md-1">UserId</div>
          <div class="col-md-2">CreateTime</div>
        </div>
        <div th:if="${not #lists.isEmpty(contents)}">
            <div class="row" th:each="content:${contents}" style="height:40px;background-color: #000000; margin-top: 1px; color: #ffffff">
              <div class="col-md-1"></div>
              <div class="col-md-2"></div>
              <div class="col-md-5"></div>
              <div class="col-md-1"></div>
              <div class="col-md-2"></div>
            </div>
        </div>
    </div>

</body>
</html>

 

4、访问上述路由于

缔造了展示用的模板后,接下去我们若做的事情就是只要对那个进行访问了。下方截图就是我们最终的拜会结果。

  图片 9

本篇博客就优先到这时吧,以后还见面以及MyBatis的另外情节,到时刻更细说。

本篇博客所涉嫌代码的github地址:https://github.com/lizelu/SpringBootProject

 

相关文章