当前位置: 首页 > news >正文

云监控(华为) | 实训学习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 {@Autowiredprivate 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 {@Autowiredprivate 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: .htmldatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/myguassdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTCusername: rootpassword: '123456'mybatis:mapper-locations: classpath:mybatis/*.xml

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Eclipse 内容辅助
  • 微信小程序学习之旅
  • 【iOS】—— 消息传递和消息转发
  • 团队高效地使用 Git 进行协同开发
  • 【常见开源库的二次开发】基于openssl的加密与解密——MD5算法源码解析(六)
  • Axure中继器进阶指南:打造专业级交互
  • <数据集>UA-DETRAC车辆识别数据集<目标检测>
  • 【已解决】Django连接MySQL启动报错Did you install mysqlclient?
  • 基于STM32设计的人体健康监测系统(华为云IOT)(189)
  • 前端学习(二)之HTML
  • ExoPlayer架构详解与源码分析(15)——Renderer
  • 昇思25天学习打卡营第15天|两个分类实验
  • studio编译报错java.lang.NullPointerException
  • 组队学习——支持向量机
  • C#语法基础详解(万字总结)
  • 【Leetcode】101. 对称二叉树
  • angular2开源库收集
  • Java方法详解
  • LintCode 31. partitionArray 数组划分
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue总结
  • Zsh 开发指南(第十四篇 文件读写)
  • 高度不固定时垂直居中
  • 离散点最小(凸)包围边界查找
  • 模型微调
  • 入门级的git使用指北
  • 使用common-codec进行md5加密
  • 手机端车牌号码键盘的vue组件
  • 思否第一天
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # Kafka_深入探秘者(2):kafka 生产者
  • # 职场生活之道:善于团结
  • #微信小程序:微信小程序常见的配置传旨
  • (13)DroneCAN 适配器节点(一)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (自用)交互协议设计——protobuf序列化
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .CSS-hover 的解释
  • .gitignore文件---让git自动忽略指定文件
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net core 6.0 升8.0
  • .NET Core中的时区转换问题
  • .NET 反射的使用
  • .NET企业级应用架构设计系列之技术选型
  • /dev/sda2 is mounted; will not make a filesystem here!
  • ::before和::after 常见的用法
  • @JsonFormat与@DateTimeFormat注解的使用
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @RequestBody的使用
  • [000-01-022].第03节:RabbitMQ环境搭建
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [Algorithm][动态规划][两个数组的DP][正则表达式匹配][交错字符串][两个字符串的最小ASCII删除和][最长重复子数组]详细讲解