• 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> {
    
    }

     

    运行结果图:

     

     

     

  • 相关阅读:
    [论文阅读笔记] A Multilayered Informative Random Walk for Attributed Social Network Embedding
    [论文阅读笔记] Large-Scale Heterogeneous Feature Embedding
    [论文阅读笔记] Community-oriented attributed network embedding
    微信小程序下拉选择器(反UI的产品设计)
    浮点数
    Centos7利用rpm升级OpenSSH到openssh-8.1p1版本
    CentOS7.6使用you-get下载视频素材
    mysql5.7以后group by 报错 sql_mode=only_full_group_by的解决方法
    【MySQL】Mysql提示:Out of sort memory, consider increasing server sort buffer size
    【Python】Windows系统安装pip.whl
  • 原文地址:https://www.cnblogs.com/wufeng6/p/11802177.html
Copyright © 2020-2023  润新知