粤嵌实训医疗项目--day01(Vue+SpringBoot)

news2024/11/18 5:44:12

目录

一、创建工作空间及配置Maven环境

二、创建springboot项目整合web操作

三、http请求参数获取及登录页面访问操作

四、数据库设计、数据库创建及导入sql

五、使用mybatis-plus逆向工程生成代码【vaccinum】

六、JavaEE三层架构概念及user查询实现

 七、mybatis-plus逆向工程通用API实现原理分析及user模块的接口实现【添删改查】

八、前端环境配置【Vscode、Node.js】【安装直接默认下一步即可】


一、创建工作空间及配置Maven环境

先创建work文件夹,然后在IDEA中打开、然后设置sdk

--解压maven压缩文件

在conf/settings.xml 文件中配置本地仓库位置(maven 的安装目录下):

 【一】打开 settings.xml文件,配置本地仓库位置(也就是本地文件夹):

<localRepository>D:\JavaSoftware\mavenlib</localRepository>

Maven中央仓库配置 

【二】继续配置settings.xml文件,找到mirrors标签,配置中央仓库位置:

 <mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
      	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      	<mirrorOf>central</mirrorOf>
	</mirror>

 

在idea中绑定Maven ,然后关掉idea重新打开

 --在ideza中进行测试、创建maven项目


二、创建springboot项目整合web操作

在工作空间中new module,使用spring初始化器【springboot选择maven方式构建、选择2.7.1x的springboot版本】

--选择springboot的版本和项目的web依赖

--在项目中创建Java类、提供controller代码【注意controller代码要和启动类在同一个package下】

//这个是user模块的控制层代码【用于接收user模块的http请求】
@RestController
public class UserController {

    // http://localhost:8080/loginUser  http://127.0.0.1:8080/loginUser
    //定义一个登录的请求接口【请求地址、请求的处理代码(方法)】
    @RequestMapping("/loginUser")
    public String login() {
        //省略了部分的处理代码。。。。。
        //响应数据
        return "login Page!!!";
    }

}

三、http请求参数获取及登录页面访问操作

--修改Controller中的代码,获取请求参数及实现业务判断

// http://127.0.0.1:8080/loginUser?name=admin&password=123456
//定义功能的http请求接口  【登录】
@RequestMapping("loginUser")
public String login(String name,String password){
    //判断账号
    if(name.equals("admin")&&password.equals("123456")){
        return "login 成功!!!!";
    }else{
        return "login 失败!!!!";
    }
}

--在resources文件中的static文件夹中创建login.html页面 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
<!-- form表单   action表示为请求提交的地址 -->
<form action="/loginUser">
    用户名:<input type="text" name="name"/><br>
    密码:<input type="text" name="password"/><br>
    <input type="submit" value="登录"/><br>
</form>
</body>
</html>

--测试,访问

http://127.0.0.1:8080/login.html

四、数据库设计、数据库创建及导入sql

--1在MySQL链接中创建vaccinum数据库、指定编码和排序规则

 

--2然后双击选中vaccinum数据库,右键执行sql文件、导入数据、最后f5刷新即可

 

--3刷新


五、使用mybatis-plus逆向工程生成代码【vaccinum】

--1创建springboot项目(MybatisPlusDemo)、选择对应的依赖

 

--2、在项目的pom.xml文件中的dependencies内添加依赖、然后更新依赖 

 

<!--mybatis-plus插件-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.1.tmp</version>
</dependency>
<!--mybatis-plus-generator-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>
<!-- commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.9</version>
</dependency>

 3、提供CodeGenerator.java程序【逆向工程的执行程序】、执行生成代码

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

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

// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
public class CodeGenerator {

    /**
     * <p>
     * 读取控制台内容   appointment,appointment_vaccine,department,doctor,hospital,manager,posts,registration,user,vaccine,vaccine_type
     * </p>
     */
    public static String scanner(String tip) {
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("请输入" + tip + ":");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
            String ipt = scanner.next();
            if (StringUtils.isNotBlank(ipt)) {
                return ipt;
            }
        }
        throw new MybatisPlusException("请输入正确的" + tip + "!");
    }

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/vaccinum/src/main/java");
        gc.setAuthor("jerry");
        gc.setOpen(false);
        // gc.setSwagger2(true); 实体属性 Swagger2 注解
        mpg.setGlobalConfig(gc);

        // 数据源配置 example.demo  user,doctor
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/vaccinum?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
        // dsc.setSchemaName("public");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(scanner("模块名"));
        pc.setParent("com");//com.example.springmybatisdemo  输入example.springmybatisdemo
        mpg.setPackageInfo(pc);

        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };

        // 如果模板引擎是 freemarker
        String templatePath = "/templates/mapper.xml.ftl";
        // 如果模板引擎是 velocity
        // String templatePath = "/templates/mapper.xml.vm";

        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);

        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();

        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // strategy.setSuperEntityClass("BaseBean");
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        // 公共父类
        //strategy.setSuperControllerClass("BaseController");
        // 写于父类中的公共字段
        strategy.setSuperEntityColumns("id");
        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setTablePrefix(pc.getModuleName() + "_");
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }

}

--效果如下:


六、JavaEE三层架构概念及user查询实现

每个package的作用:

controller【控制层:http的请求控制处理类(接收和响应)】

service 【业务层:功能的业务实现逻辑代码】

mapper 【数据持久层:数据库的操作】

entity【实体-数据模型-JavaBean:封装数据(比如学生、老师、医生)】

JavaEE经典三层架构(controller、service、dao{mapper})

调用关系:

controller调用service、service调用dao{mapper}

编写程序时的顺序:

dao{mapper}、service、controller

--1、在mapper层中给所有mapper文件都添加上@Mapper注解

 --在User类中加入主键

 

/**
 * 主键、设置为自增策略
 */
@TableId(type = IdType.AUTO)
private Integer id;

 --2、在controller中的UserController中定义查询请求接口

@RestController
@RequestMapping("/user") //功能模块的请求地址的前缀
public class UserController {

    //依赖User模块的业务层对象
    @Autowired  //自动注入对象
    IUserService userService;

    //    http://127.0.0.1:8085/user/query
    //定义一个请求功能的请求接口(处理方法)
    @RequestMapping("/query")
    public List<User> query(){
        //查询所有的user、返回是一个集合
        List<User> list = userService.list();
        //返回list集合对象
        return list;
    }


}

 --3、将项目的resources文件夹中的配置文件修改为application.yml、然后加入配置信息(要注意格式缩进)

#数据库的链接配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/vaccinum?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC
    username: root
    password:
#服务器的配置
server:
  port: 8085
  tomcat:
    uri-encoding: UTF-8
  servlet:
    encoding:
      charset: UTF-8
#打印sql日志信息
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

--4、启动项目的application启动类,然后访问http请求测试

http://localhost:8085/user/query

 七、mybatis-plus逆向工程通用API实现原理分析及user模块的接口实现【添删改查】

--1、在UserController中定义添删改查的请求接口

@RestController
@RequestMapping("/user")
public class UserController {

    //依賴user业务层对象
    @Autowired //自动注入
    IUserService userService;

    // http://localhost:8085/user/query
    //    定义查询user的请求接口
    @RequestMapping("/query")
    public List<User> query(){
        //調用业务层的查询方法,返回list
        List<User> list = userService.list();
        //返回
        return list;
    }

    // http://localhost:8085/user/insert?name=sdfdsf&password=sdfdsfd&codeid=sdfsdffdss&phone=13545631253
    //    定义查询user的添加请求接口
    @RequestMapping("/insert")//注意请求提交的参数key要和实体类的变量名一致
    public boolean insert(User user){
        //調用业务层的方法
        boolean save = userService.save(user);
        //返回
        return save;
    }

    // http://localhost:8085/user/update?id=15&name=123456s&password=123456&codeid=45698465sddd&phone=aa13545631253
    //    定义查询user的修改请求接口
    @RequestMapping("/update")//注意请求提交的参数key要和实体类的变量名一致
    public boolean update(User user){
        //調用业务层的方法
        boolean update = userService.updateById(user);
        //返回
        return update;
    }

    // http://localhost:8085/user/delete?id=15
    //    定义查询user的删除请求接口
    @RequestMapping("/delete")//注意请求提交的参数key要和实体类的变量名一致
    public boolean delete(Integer id){
        //調用业务层的方法
        boolean delete = userService.removeById(id);
        //返回
        return delete;
    }


}

--2、重启服务,并通过http请求进行测试。


八、前端环境配置【Vscode、Node.js】【安装直接默认下一步即可】

安装VSCode、然后扩展插件中安装以下的插件

--配置“vue”插件

--重新启动VSCode即可

--安装node.js

--创建前端项目的工作空间,然后使用vscode软件打开工作空间

--使用终端打开dos命令行界面、测试环境【npm -v】

VSCode快捷键:

--新建一个文件使用:ctrl+n

--使用英文的感叹号+提示,回车即可(生成html的命名空间)

--注释代码:ctrl+/

---通过使用alt+b快速运行html在浏览器中

---快速复制一行代码: alt+shift+方向键

---移动代码: alt+方向键

--回撤:ctrl+z

--快速删除一行代码:ctrl+x

--格式化代码: alt+shift+f


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1118418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装与脏数据绕过_安全狗

1安全狗 1.1 环境准备 安全狗safedogwzApacheV3.5.exe&#xff0c;安装步骤省略&#xff0c; pikachu环境&#xff1a;https://zhuanlan.zhihu.com/p/568493971 安装注意事项&#xff1a;安装完后php和web服务都需要重启 注意事项&#xff1a;服务名php版本保持一致 安装过…

UG\NX二次开发 获取调色板CDF文件的内容

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 迈克尔.卓别煷 订阅本专栏,非常感谢。 简介 UG\NX二次开发 获取调色板CDF文件的内容 文件->首选项->调色板 效果 代码 #include "me.hpp" #

使用Simple JWT提供认证服务(详细介绍access_token和refresh_token的使用)

文章目录 基本概念JSON Web Token&#xff08;JWT&#xff09;Simple JWT 主要用途Cookie、Session、Token的区别CookieSessionToken Token续签access_token 和 refresh_token时效设置 基本概念 JSON Web Token&#xff08;JWT&#xff09; JSON Web Token&#xff08;JWT&am…

探索大数据时代的关键技术:数据挖掘、可视化和数据仓库

文章目录 &#x1f31f; 大数据和数据分析技术&#x1f34a; 引言&#x1f34a; 数据挖掘&#x1f34a; 数据可视化&#x1f34a; 数据仓库&#x1f34a; 结论 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里…

【Linux基础】详谈Shell运行原理------王婆传媒(高重复率面试题)

目录 &#x1f4a7;前言 &#x1f4a6;Shell的运行原理 &#x1f449;Shell的基本概念与作用 &#x1f449;原理的展示与剖析 &#x1f449;Shell外壳感性理解【一门亲事】 &#x1f4a7;总结 &#x1f4a7;共勉 &#x1f4a7;前言 在之前的 Linux 讲解中&#xff0c;主要说…

【管理运筹学】第 10 章 | 排队论(2,到达时间间隔的分布和服务时间的分布)

文章目录 引言一、普阿松分布二、负指数分布三、爱尔朗分布 引言 解决排队问题&#xff0c;首先要根据原始资料做出顾客到达时间间隔和服务时间的经验分布&#xff0c;然后按照统计学的方法&#xff08;如 χ 2 \chi^2 χ2 检验&#xff09;以确定属于哪种分布理论&#xff0…

JS数组方法合集(含应用场景)

1.Array.push() 向数组的末尾添加一个或多个元素&#xff0c;并返回新的数组长度。原数组改变 const arr ["apple", "orange", "grape"]; const arr_length arr.push("banana");console.log("arr", arr, "arr_leng…

JOSEF约瑟 JHOK-ZBM1;JHOK-ZBL1多档切换式漏电(剩余)继电器 面板导轨安装

系列型号&#xff1a; JHOK-ZBL多档切换式漏电&#xff08;剩余&#xff09;继电器&#xff08;导轨&#xff09; JHOK-ZBL1多档切换式漏电&#xff08;剩余&#xff09;继电器 JHOK-ZBL2多档切换式漏电&#xff08;剩余&#xff09;继电器 JHOK-ZBM多档切换式漏电&#xf…

【算法训练-动态规划 一】【应用DP问题】零钱兑换、爬楼梯、买卖股票的最佳时机I、打家劫舍

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【动态规划】&#xff0c;使用【数组】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

springBoot--web--favicon规则

在静态资源目录中找favicon.icon 推荐图标工具 favicon使用 在静态资源中放入下载好的图片,改名为favicon.ico

互联网医院|互联网医疗模式已从概念走向实体建设阶段

近年来&#xff0c;医疗服务领域新形态不断涌现&#xff0c;“互联网医疗”作为其中突出的一种&#xff0c;在挂号结算、远程诊疗、咨询服务等方面进行了不少探索&#xff0c;而早在2015年全国互联网医院成立&#xff0c;标志着“互联网医疗”模式已经从概念走向了实体建设阶段…

【Arduino TFT】Arduino uzlib库,用于解压gzip流,解析和风天气返回数据

忘记过去&#xff0c;超越自己 ❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-10-21 ❤️❤️ 本篇更新记录 2023-10-21 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &#x1f44d;收藏 ⭐️留言&#x1f4dd;&#x1f64…

开源WAF--Safeline(雷池)测试手册

长亭科技—雷池(SafeLine)社区版 官方网站:长亭雷池 WAF 社区版 (chaitin.cn) WAF 工作在应用层&#xff0c;对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果&#xff0c;使其免于受到黑客的攻击 1.1 雷池的搭建 1.1.1 配置需求 操作系统&#xff1a;Linux 指令架构&am…

【框架源码篇 03】Spring源码手写篇-手写AOP

Spring源码手写篇-手写AOP 手写IoC和DI后已经实现的类图结构。 一、AOP分析 1.AOP是什么? AOP[Aspect Oriented Programming] 面向切面编程&#xff0c;在不改变类的代码的情况下&#xff0c;对类方法进行功能的增强。 2.我们要做什么&#xff1f; 我们需要在前面手写IoC&…

[Spring] SpringBoot2 简介(一)—— 基础配置

目录 一、SpringBoot 简介 1、Spring 的缺点 2、SpringBoot 功能 二、SpringBoot 入门案例 1、实现步骤 2、访问服务器 3、入门小结 4、Idea 快速构建 SpringBoot 工程 5、起步依赖无需版本号 6、主启动类的在项目中的位置&#xff08;*重要*&#xff09; 三、Sprin…

[AUTOSAR][诊断管理][$10] 会话模式控制

文章目录 一、简介二、指令格式请求: 10 SF会话参数记录有P2Server_max(2byte)和P2*Server_max(2byte),高位在前的表示方式。否定相应:7F SID NRC(否定相应码)三、示例代码(1) uds10_session_ctl.c一、简介 $10服务是Diagnostic Session Control诊断会话控制,子功能有01…

机器学习 | Python决策树算法

基本原理 决策树的基本原理是将数据分成不同的子集,使每个子集尽可能纯净。 这意味着子集中的数据属于同一类别或具有相似的属性。 为了做到这一点,决策树会选择一个特征,并根据该特征将数据分成两个子集。 它会选择那个特征,该特征在划分后的子集中具有最好的纯度,通…

Python获取微信公众号文章数据

这是一个通过 Python mitmproxy 库 实现获取某个微信公众号下全部文章数据的解决方案。首先需要创建一个 Python 虚拟环境&#xff0c;并进入虚拟环境下&#xff1a; $ python -m venv venv $ venv/Scripts/activate我们需要使用 mitmproxy 库 来建立一个网络代理&#xff0c;…

设计模式篇---组合模式

文章目录 概念结构实例总结 概念 组合模式&#xff1a;组合多个对象形成树形结构以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象。 当我们开发中遇到树形结构的业务时&#xff0c;可以考虑使用组合模式。&#xff08;我也没有想明白为啥…

基于springboot实现财务管理系统项目【项目源码+论文说明】

基于springboot实现财务管理系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#x…