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


    目录

    一、创建工作空间及配置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标签,配置中央仓库位置:

    1. <mirror>
    2. <id>alimavenid>
    3. <name>aliyun mavenname>
    4. <url>http://maven.aliyun.com/nexus/content/groups/public/url>
    5. <mirrorOf>centralmirrorOf>
    6. mirror>

     

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

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


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

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

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

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

    1. //这个是user模块的控制层代码【用于接收user模块的http请求】
    2. @RestController
    3. public class UserController {
    4. // http://localhost:8080/loginUser http://127.0.0.1:8080/loginUser
    5. //定义一个登录的请求接口【请求地址、请求的处理代码(方法)】
    6. @RequestMapping("/loginUser")
    7. public String login() {
    8. //省略了部分的处理代码。。。。。
    9. //响应数据
    10. return "login Page!!!";
    11. }
    12. }

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

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

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

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

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>登录页面title>
    6. head>
    7. <body>
    8. <form action="/loginUser">
    9. 用户名:<input type="text" name="name"/><br>
    10. 密码:<input type="text" name="password"/><br>
    11. <input type="submit" value="登录"/><br>
    12. form>
    13. body>
    14. 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内添加依赖、然后更新依赖 

     

    1. <dependency>
    2. <groupId>com.baomidougroupId>
    3. <artifactId>mybatis-plus-boot-starterartifactId>
    4. <version>3.3.1.tmpversion>
    5. dependency>
    6. <dependency>
    7. <groupId>com.baomidougroupId>
    8. <artifactId>mybatis-plus-generatorartifactId>
    9. <version>3.4.1version>
    10. dependency>
    11. <dependency>
    12. <groupId>org.apache.commonsgroupId>
    13. <artifactId>commons-lang3artifactId>
    14. <version>3.9version>
    15. dependency>

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

    1. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
    2. import com.baomidou.mybatisplus.core.toolkit.StringPool;
    3. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
    4. import com.baomidou.mybatisplus.generator.AutoGenerator;
    5. import com.baomidou.mybatisplus.generator.InjectionConfig;
    6. import com.baomidou.mybatisplus.generator.config.*;
    7. import com.baomidou.mybatisplus.generator.config.po.TableInfo;
    8. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    9. import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    10. import java.util.ArrayList;
    11. import java.util.List;
    12. import java.util.Scanner;
    13. // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
    14. public class CodeGenerator {
    15. /**
    16. *

    17. * 读取控制台内容 appointment,appointment_vaccine,department,doctor,hospital,manager,posts,registration,user,vaccine,vaccine_type
    18. *

    19. */
    20. public static String scanner(String tip) {
    21. Scanner scanner = new Scanner(System.in);
    22. StringBuilder help = new StringBuilder();
    23. help.append("请输入" + tip + ":");
    24. System.out.println(help.toString());
    25. if (scanner.hasNext()) {
    26. String ipt = scanner.next();
    27. if (StringUtils.isNotBlank(ipt)) {
    28. return ipt;
    29. }
    30. }
    31. throw new MybatisPlusException("请输入正确的" + tip + "!");
    32. }
    33. public static void main(String[] args) {
    34. // 代码生成器
    35. AutoGenerator mpg = new AutoGenerator();
    36. // 全局配置
    37. GlobalConfig gc = new GlobalConfig();
    38. String projectPath = System.getProperty("user.dir");
    39. gc.setOutputDir(projectPath + "/vaccinum/src/main/java");
    40. gc.setAuthor("jerry");
    41. gc.setOpen(false);
    42. // gc.setSwagger2(true); 实体属性 Swagger2 注解
    43. mpg.setGlobalConfig(gc);
    44. // 数据源配置 example.demo user,doctor
    45. DataSourceConfig dsc = new DataSourceConfig();
    46. dsc.setUrl("jdbc:mysql://localhost:3306/vaccinum?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
    47. // dsc.setSchemaName("public");
    48. dsc.setDriverName("com.mysql.cj.jdbc.Driver");
    49. dsc.setUsername("root");
    50. dsc.setPassword("");
    51. mpg.setDataSource(dsc);
    52. // 包配置
    53. PackageConfig pc = new PackageConfig();
    54. pc.setModuleName(scanner("模块名"));
    55. pc.setParent("com");//com.example.springmybatisdemo 输入example.springmybatisdemo
    56. mpg.setPackageInfo(pc);
    57. // 自定义配置
    58. InjectionConfig cfg = new InjectionConfig() {
    59. @Override
    60. public void initMap() {
    61. // to do nothing
    62. }
    63. };
    64. // 如果模板引擎是 freemarker
    65. String templatePath = "/templates/mapper.xml.ftl";
    66. // 如果模板引擎是 velocity
    67. // String templatePath = "/templates/mapper.xml.vm";
    68. // 自定义输出配置
    69. List focList = new ArrayList<>();
    70. // 自定义配置会被优先输出
    71. focList.add(new FileOutConfig(templatePath) {
    72. @Override
    73. public String outputFile(TableInfo tableInfo) {
    74. // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
    75. return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
    76. }
    77. });
    78. cfg.setFileOutConfigList(focList);
    79. mpg.setCfg(cfg);
    80. // 配置模板
    81. TemplateConfig templateConfig = new TemplateConfig();
    82. templateConfig.setXml(null);
    83. mpg.setTemplate(templateConfig);
    84. // 策略配置
    85. StrategyConfig strategy = new StrategyConfig();
    86. strategy.setNaming(NamingStrategy.underline_to_camel);
    87. strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    88. // strategy.setSuperEntityClass("BaseBean");
    89. strategy.setEntityLombokModel(true);
    90. strategy.setRestControllerStyle(true);
    91. // 公共父类
    92. //strategy.setSuperControllerClass("BaseController");
    93. // 写于父类中的公共字段
    94. strategy.setSuperEntityColumns("id");
    95. strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
    96. strategy.setControllerMappingHyphenStyle(true);
    97. strategy.setTablePrefix(pc.getModuleName() + "_");
    98. mpg.setStrategy(strategy);
    99. mpg.setTemplateEngine(new FreemarkerTemplateEngine());
    100. mpg.execute();
    101. }
    102. }

    --效果如下:


    六、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类中加入主键

     

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

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

    1. @RestController
    2. @RequestMapping("/user") //功能模块的请求地址的前缀
    3. public class UserController {
    4. //依赖User模块的业务层对象
    5. @Autowired //自动注入对象
    6. IUserService userService;
    7. // http://127.0.0.1:8085/user/query
    8. //定义一个请求功能的请求接口(处理方法)
    9. @RequestMapping("/query")
    10. public List query(){
    11. //查询所有的user、返回是一个集合
    12. List list = userService.list();
    13. //返回list集合对象
    14. return list;
    15. }
    16. }

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

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

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

    http://localhost:8085/user/query

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

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

    1. @RestController
    2. @RequestMapping("/user")
    3. public class UserController {
    4. //依賴user业务层对象
    5. @Autowired //自动注入
    6. IUserService userService;
    7. // http://localhost:8085/user/query
    8. // 定义查询user的请求接口
    9. @RequestMapping("/query")
    10. public List query(){
    11. //調用业务层的查询方法,返回list
    12. List list = userService.list();
    13. //返回
    14. return list;
    15. }
    16. // http://localhost:8085/user/insert?name=sdfdsf&password=sdfdsfd&codeid=sdfsdffdss&phone=13545631253
    17. // 定义查询user的添加请求接口
    18. @RequestMapping("/insert")//注意请求提交的参数key要和实体类的变量名一致
    19. public boolean insert(User user){
    20. //調用业务层的方法
    21. boolean save = userService.save(user);
    22. //返回
    23. return save;
    24. }
    25. // http://localhost:8085/user/update?id=15&name=123456s&password=123456&codeid=45698465sddd&phone=aa13545631253
    26. // 定义查询user的修改请求接口
    27. @RequestMapping("/update")//注意请求提交的参数key要和实体类的变量名一致
    28. public boolean update(User user){
    29. //調用业务层的方法
    30. boolean update = userService.updateById(user);
    31. //返回
    32. return update;
    33. }
    34. // http://localhost:8085/user/delete?id=15
    35. // 定义查询user的删除请求接口
    36. @RequestMapping("/delete")//注意请求提交的参数key要和实体类的变量名一致
    37. public boolean delete(Integer id){
    38. //調用业务层的方法
    39. boolean delete = userService.removeById(id);
    40. //返回
    41. return delete;
    42. }
    43. }

    --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


  • 相关阅读:
    docker部署的jenkins配置(接口自动化)
    VMwarePlayer安装Ubuntu,切换中文并安装中文输入法
    STM32CubeMX教程17 DAC - 输出三角波噪声波
    《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》中文翻译
    经典面试题-Appium原理
    【Linux】Ubuntu 压缩与解压缩
    【区块链技术与应用】(八)
    Java获取随机数
    VUE3照本宣科——package.json与vite.config.js
    面试题-3
  • 原文地址:https://blog.csdn.net/dogxixi/article/details/133965408