Spring Boot(二): API接口定义,Mysql数据库连接,thymeleaf模板渲染

一、API定义

    Spring boot定于restful API极其简单,通过几个简单的注解便可完全实现。

    1 、在类名称前面增加注解@RestController,增加注解@RequestMapping,定义访问路由

@RestController
@RequestMapping(path="/greet") // This means URL's start with /demo (after Application
public class UserController {
}

    2、定义具体方法,我们这里返回字符串,其他方式可自行搜索

    @RequestMapping("/hello")
    @ResponseBody
    public String home(){
        return "sdfsdfsdf";
    }

    3、运行Spring主文件


     4、浏览器访问验证


二、数据库访问(MySQL)

    1 、安装MySQL数据库(略)

    2、pom.xml增加如下依赖

        <!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!-- Use MySQL Connector-J -->

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

 如需要显示执行过程中的sql语句,再添加如下依赖

        <!--  log4jdbc 依赖-->
        <dependency>
            <groupId>com.googlecode.log4jdbc</groupId>
            <artifactId>log4jdbc</artifactId>
            <version>1.2</version>
        </dependency>

3 、application.properties文件增加如下配置

spring.jpa.hibernate.ddl-auto=update
#这里增加了log4jdbc代理显示sql语句,如果不需要配置可以改为:jdbc:mysql://localhost:3307/xiyu?characterEncoding=utf-8&useSSL=false
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3307/xiyu?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#通过log4jdbc的方式代理mysql请求来捕捉sql日志,否则可不设置
spring.datasource.driverClassName = net.sf.log4jdbc.DriverSpy 

4 定义Entity类文件,此文件字段需要和数据库表结构对应,hibernate执行过程中会通过此文件修改表结构

package com.hodor.xiyu.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;

    private String name;

    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

 5 定义Repository类文件,此文件中定义数据库的各种操作,具体参考官方文档

package com.hodor.xiyu.repository;

import com.hodor.xiyu.entity.User;
import org.springframework.data.repository.CrudRepository;

public interface UserRepository extends CrudRepository<User,Integer> {

}

6 示例:定义保存数据的方法

    @PostMapping(path="/add") // Map ONLY GET Requests
    public @ResponseBody User addNewUser (@RequestBody User us) {
        // @ResponseBody means the returned String is the response, not a view name
        // @RequestParam means it is a parameter from the GET or POST request

        User n = new User();
        n.setName(us.getName());
        n.setEmail(us.getEmail());
        User rt = userRepository.save(n);
        return rt;
    }

7 Postman访问


三、模板渲染

如果明白了API的定义方式,返回模板渲染就很方便了,项目中使用thymeleaf模板引擎。

1 定义模板文件,创建目录 /src/resources/templates/user,默认模板文件夹是templates,同时在目录中创建文件user_list.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>用户列表</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<table>
    <thead>
    <tr>
        <td>用户名</td>
        <td>email</td>
    </tr>
    </thead>
    <tbody>
    <tr  th:each="user, stat:${users}">
        <td th:text="${user.name}"></td>
        <td th:text="${user.email}">text@test.com</td>
    </tr>
    </tbody>
</table>
</body>
</html>

2 定义模板渲染函数,在controller类上增加注解@Controller

@Controller    // This means that this class is a Controller
@RequestMapping(path="/user") // This means URL's start with /demo (after Application
public class UserController {

    }

渲染函数如下:

    @GetMapping(path="/all")
    public String getAllUsers(Model model) {
        // This returns a JSON or XML with the users
        model.addAttribute("users",userRepository.findAll());
        return "hello/user_list";
    }
3 访问页面


附件资源:

https://download.csdn.net/download/xiyushiyi/10332828

done


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值