云监控(华为) | 实训学习day2(10)

spring boot基于框架的实现

简单应用 - 用户数据显示

  • 开发步骤

 第一步:文件-----》新建---à项目

 第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容.

  

 第三步,选择maven后,下一步

第4步  :出现对话框中填写项目名称

第5步:填写后完成

 第6步:把pom.xml打开

 第7步:填写模块的软件版本 

附:查版本

到远程仓库,进入仓库查询mysql8.0的版本

最终依赖包文件如下

把包输入后,使用maven的重新加载项目

除了上述的修改,还有一个lombok插件(java bean)

安装后“确定”即可

使用java开发注重项目架构(文件夹)

  1. Mvc开发模式
  2. Java开发必须有一个顶层的软件包(com)
  3. Model数据
  4. 数据库操作 dao-àmybatis实现java类到数据库表之间的关系-pojo  

业务: (转帐)包含多数据库操作  service

控制:逻辑实现 controller

结构是通过在java中右键,新建---“软件包”实现

Java解决问题的思路

  1. 先有表,探讨表的结构
  2.  有java bean
  3. Pojo层数据库操作
  4. Service层逻辑(一般service和pojo代码相似)
  5. Controller封装逻辑
  6. 前端界面

结构理顺,用户登录和注册

第一步:有用户表

进入到mysql数据库

   

创数据库,打开数据库,创建表,插入数据。

第二步:有java bean

注意类名尽量与表名一致。

第三步:有dao层方法(pojo层的方法)

注意:springboot把pojo都变成接口,创建时选择interface

Interface不能写具体代码,代码被mybatis实现

在MyUser的java bean加入@Data的lombok注解

接口作用是不能被实现

代码如下

代码mybatis实现.,定义成interface

第四步:有service层,调用mapper层的类的方法,这一层有事务.

注意:@Service注解,@Autowired注入UserMapper

 第五步:有controller层,在这层中,调用service

Controller层新建UserController类 的代码

第六步:前端页面 :

springboot前端要求必须有一个文件夹。文件夹在resources文件夹下,文件夹名字必须是templates

在templates文件夹下创建前端HTML文件

文件名与Controller中返回的字符串名称一致。

这里没一致,改一下

HTML代码后面完善

根据java流程架构图

Spring boot框架

  1. 配置文件

三部分内容

 数据库连接

 Mybatis 配置sql语句的位置

前端模板

 名称只能是application.yml

Yml文件是键和值组成,形成数据库参数和值的对应关系

文件内容

数据库的驱动

Mysql5.X 驱动 com.mysql.jdbc.Driver

Mysql8.0驱动 com.mysql.cj.jdbc.Driver       

Mysql5.X 地址

jdbc:mysql://localhost:3306/mygaussdb?characterEncoding=utf8&useSSL=false

mysql8.0地址

jdbc:mysql://localhost:3306/mygaussdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC

  

数据库密码是123456,写password: ‘123456’

  1. myBatis的mapper文件xml

 

建立的文件名与pojo接口文件名一致

Xml文件注意的地方:

 根据查询结果,修改pojo接口文件

对应Service结果的改变,UserService代码

前端的网页文件改如下:  

UserController文件改如下

运行程序

写一个主程序,主程序只能在顶层的包里写,这里是com包

提示后回车

SpringBoot的主程序

报错

把右边maven项打开

把依赖项展开,是否有冲突项

去一个

把pom.xml文件改一下

排除后更新

更新后,只有一个

运行成功显示

显示数据在浏览器器中输入

基本结构成功。

第一种: 从架构理解

第二种从开发上理解

目标:把表数据变成网页显示

两条线:

后端线:表------àController控制层实现

  1. 先有表,探讨表的结构
  2. 有java bean,,类结构与表一致

(3)Pojo层数据库操作,这是接口文件,实现由mybatis配合xml增删改查实现。 

  1. Service层逻辑(一般service和pojo代码相似),这是java类
  2. Controller封装逻辑,返回前端页面和数据

前端线

  1. 页面使用thymeleaf模板
  2. 接收前端数据${前端变量名 }   ,th:each做循环
  3. 显示的是java bean当中的每一个属性值

详细代码

package com.bean;

import lombok.Data;

@Data
public class MyUser {
    private int id;
    private String username;
    private String password;
}
package com.controller;

import com.bean.MyUser;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userservice;
    @RequestMapping("/list")
    public String ListUser(Model model) {
        List<MyUser> users = userservice.selectUser();
        System.out.println("users");
        model.addAttribute("myusers", users);
        return "myuser";
    }
}
package com.pojo;

import com.bean.MyUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface UserMapper {
    public List<MyUser> selectUser();

    public void addUser(MyUser user);
}
package com.service;

import com.bean.MyUser;
import com.pojo.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserMapper usermapper;
    public List<MyUser> selectUser(){
        return usermapper.selectUser();
    }
}
package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Mymain {
    public static void main(String[] args) {
        SpringApplication.run(Mymain.class);
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pojo.UserMapper">
    <select id="selectUser" resultType="com.bean.MyUser">
        select * from myuser
    </select>
    
    <insert id="addUser" parameterType="com.bean.MyUser">
        insert into myuser values (#{id},#{username},#{password})
    </insert>
</mapper>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>显示用户</title>
</head>
<body>
<table>
    <tr>
        <td>id</td>
        <td>用户名</td>
        <td>用户密码</td>
    </tr>
    <tr th:each="item:${myusers}">
        <td th:text="${item.id}"></td>
        <td th:text="${item.username}"></td>
        <td th:text="${item.password}"></td>
    </tr>
</table>

</body>
</html>
spring:
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/myguassdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    username: root
    password: '123456'

mybatis:
  mapper-locations: classpath:mybatis/*.xml

相关推荐

  1. 华为课笔记

    2024-07-19 07:40:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 07:40:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 07:40:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 07:40:05       58 阅读
  4. Python语言-面向对象

    2024-07-19 07:40:05       69 阅读

热门阅读

  1. STM32 | 看门狗+RTC源码解析

    2024-07-19 07:40:05       21 阅读
  2. 富文本中提取信息并去除其中的HTML或XML标签

    2024-07-19 07:40:05       22 阅读
  3. 2024前端面试真题【手写篇】

    2024-07-19 07:40:05       18 阅读
  4. 聊聊最近在看的一本书-《从极简到极致》

    2024-07-19 07:40:05       20 阅读
  5. Python数据获取(网页视频、音频版)

    2024-07-19 07:40:05       22 阅读
  6. Log4j2原理及应用详解(九)

    2024-07-19 07:40:05       23 阅读
  7. 关于Kafka的17个问题

    2024-07-19 07:40:05       19 阅读
  8. Leetcode 392. 判断子序列

    2024-07-19 07:40:05       20 阅读
  9. 无重复字符的最长子串(leetcode)

    2024-07-19 07:40:05       23 阅读
  10. 基于深度学习的超分辨率

    2024-07-19 07:40:05       23 阅读
  11. redis优化场景之批量处理

    2024-07-19 07:40:05       20 阅读
  12. SQL注入漏洞

    2024-07-19 07:40:05       20 阅读
  13. 慢SQL分析和优化

    2024-07-19 07:40:05       22 阅读