SpringBoot使用spring data jpa及在页面yaml中显示

spring boot 整合spring Data JPA 页面 yaml

做测试或者项目之前先捋一遍思路在下手,这样出错可以迅速查找到哪一步代码出错

1.1 需求 :查询数据库 ---》数据------》展示到页面上

1.2 分析

1 创建数据库 user表

2 持久层框架 spring data jpa

3 json jsp 静态html freemarker

1.3页面展示

HTML展示数据 vue.js angular.js

动态页面显示 :每次请求都生成一次页面

jsp 本质上就是servlet 工程web 工程-

springbooot 项目工程中不推荐使用jsp

模板技术 freemarker

tymeleaf

velocity

使用步骤:

a : 添加依赖

b: 创建模板文件 保存位置resources/templates 目录下 文件后缀名.ftl

c 编写controller 把结果传递给模板

1.4 yaml 文件格式

key --value

1.4.1 语法 key: value

key1:

  key2:

    key3: value

1.4.2 取属性值

@Value("${key2}")

注意:

1,创建的bean对象里面只能用getset方法不要用注解会有冲突

2,创建模板文件 (必须:springboot约束大于配置)保存位置resources/templates 目录下 文件后缀名.ftl

3,Controller文件中只能用Controller不能用RestController

按照思路走:

 

1.:创建对应的数据表

 

复制代码

 


CREATE TABLE `user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) DEFAULT NULL,
  `password` VARCHAR(50) DEFAULT NULL,
  `name` VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');

 

 

 

2.添加依赖:

<!--添加spring mvc 依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.23</version>
</dependency>
<!--添加springdatajpa的依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!--模板依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

注意:版本

复制代码
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        //注意继承父类的版本
        <version>2.0.2.RELEASE</version>
</parent>

    <groupId>com.offcn</groupId>
    <artifactId>springbootdemo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
复制代码

 

3:配置数据源

 

复制代码
#DB Configation
      spring:
        datasource:
          driverClassName: com.mysql.jdbc.Driver
          //注意出现连接不上数据库那么在数据库名后面添加  ?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
          url: jdbc:mysql://127.0.0.1:3306/数据库名
          username: root
          password: 813100
        jpa:
          database: MySQL
          show-sql: true
          generate-ddl: true
复制代码

 

3: 创建模板文件 (必须:springboot约束大于配置)保存位置resources/templates 目录下 文件后缀名.ftl

 

 

代码书写:

复制代码
<html>
    <head>
        <title> spring boot</title>
    </head>
    <body>
        <table border="3px">
            <thead>
                <tr>
                    <th>id</th>
                    <th>账号</th>
                    <th>密码</th>
                    <th>名字</th>
                </tr>
            </thead>
            <#list userList as user >    <!--userList为controller中添加到域对象中的数据-->
                <tbody>
                <tr>
                    <td>${user.id}</td>
                    <td>${user.username}</td>
                    <td>${user.password}</td>
                    <td>${user.name}</td>
                </tr>
                </tbody>
            </#list>
        </table>
    </body>
</html>
复制代码

创建实体类

注意:要在实体类上添加@Entity和@Table注解

 

复制代码
package com.wf.entity;
import javax.persistence.*;
//指数据库表对应的实体类
@Entity
//创建一个表,表名为user
//要连接的数据库
@Table(name="user")
public class User {
//主键自增长
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String username;
private String password;
private String name;
//这个里面只能用getset方法不要用注解会有冲突
 
复制代码

创建Controller接口

复制代码
package com.wf.controller;

import com.wf.dao.UserDao;
import com.wf.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
@RequestMapping("/page")
public class PageUserController {

    @Autowired
    private UserDao userDao;

    //查询数据库数据
@RequestMapping("/user/list") public String getUserList(ModelMap map){ List<User> userList = userDao.findAll(); map.addAttribute("userList",userList); return "user"; //类似于springmvc中的内部视图解析器,前后缀都不用写 } }
复制代码

 

 

 

 UserDao层:

 需要继承JpaRepository接口

package com.wf.dao;

import com.wf.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
//<User,Integer>第一个参数是指实体类,第二个参数是指实体类的id
public interface UserDao extends JpaRepository<User,Integer> {

}

 

 

 

运行结果图:

 

 

 

posted @ 2019-11-05 22:24  互联网蜜蜂  阅读(1434)  评论(0编辑  收藏  举报