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

springboot3+mybatisplus(5)-backend-mybaitsplus+frontend-router

1.backend


1.1.添加依赖




 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>my-project-backend</artifactId><version>0.0.1-SNAPSHOT</version><name>my-project-backend</name><description>my-project-backend</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--    Mybatis-Plus框架    --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency><!--    MySQL驱动    --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></path></annotationProcessorPaths></configuration></plugin><plugin><groupId>org.graalvm.buildtools</groupId><artifactId>native-maven-plugin</artifactId></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

1.2.全局配置



 

spring.application.name=my-project-backend
spring.datasource.url=jdbc:mysql://192.168.9.73:3306/pvfforecast?useSSL=false
spring.datasource.username=root
spring.datasource.password=INT@4001093999
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StudOutImpl
mybatis-plus.mapper-locations=classpath:mapper/*.xml


 

package com.myproject;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.myproject.mapper") // 指定Mapper接口所在的包
public class MyProjectBackendApplication {public static void main(String[] args) {SpringApplication.run(MyProjectBackendApplication.class, args);}}

控制器实现

1.主程序添加mapper扫描:注解 @MapperScan("com.myproject.mapper")
2.mapper处理数据库操作:表名+mapper
   不需要去写实现的内容
3.controller处理浏览器的访问   
4.entity实体类:每个表对应一个类
 

浏览器访问:
https://localhost:8080/login
user:
password:



1.3.通过config实现数据库用户名密码登录






 

1.config中添加 service


//注入2个类 密码在数据库里是加密的,浏览器中不加密的
//admin:123456
//自定义的服务类:myauthorizeService
//@Beanpublic AuthenticationManager authenticationManager(HttpSecurity security)  throws Exception{return  security.userDetailsService(myauthorizeService).getSharedObject(AuthenticationManagerBuilder.class).build();}@Beanpublic BCryptPasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}



  2.service中添加mapper和entity 用于数据库操作
      MyuserMapper.java
 

@Service
public class MyAuthorizeService implements UserDetailsService {@ResourceMyuserMapper myuserMapper;@Overridepublic UserDetails loadUserByUsername(String username)   throws UsernameNotFoundException {if(username == null)throw new UsernameNotFoundException("用户名不能为空");Myuser myuser = myuserMapper.getuserbyusername(username);if(myuser == null)throw new UsernameNotFoundException("用户名或密码错误");//User 这是一个库里的类return User.withUsername(myuser.getUsername()).password(myuser.getPassword()).roles("user").build();}
}

MyuserMapper.java

package com.myproject.mapper;import com.myproject.entity.Myuser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface MyuserMapper {@Select("select * from myuser where username = #{username} ")Myuser getuserbyusername(String username);
}

Myuser.java

import lombok.Data;@Data
public class Myuser {int id;String email;String username;String password;}

2.frontend
 

2.1系统搭建


1.package.json

名称
私有
版本
模块化规范
端口:5173-4173

2.index.html 入口文件

2.main.js


 

3.App.vue 3个

添加组件
设计 | Element Plus

npm install vue-axios --save
npm install vue-router
npm install pinia

1.写App.vue

2.写router: index.ts 并暴露出去



3.加载进项目里 main.ts

浏览器插件下载:

修改App.vue
 

验证:
localhost:5173/home



 

2.2 路由及路由器

 

<routerlink>

响应鼠标点击:添加RouterLink 



hash模式

 组件分类 route components



2.3.嵌套路由


 修改index.ts

子集不需要写/

调整样式在

2.4 传参query


: news.vue

             
details.vue

route 获取变量
console.log(‘@’,route);打印变量


内容已传递


上面写法只能传一次。

2.5传参params

这不是子路由,是参数

要去index.ts修改文件

参数任意命名 x y z 

打开浏览器 

第一种字符串


第二种写法 对象写法



1.用name 不能是path




不能传对象和数组

2.6路由的props





1.修改规则


 

details 支持 props

运行后看

引用route变量

2.7路由-编程式导航


 

http://www.xdnf.cn/news/13613.html

相关文章:

  • 【Linux开发】海思摄像头内部视频处理模块
  • SiteAzure4.x 版本 访问html静态页文件出现404错误
  • webgl(three.js 与 cesium 等实例应用)之浏览器渲染应用及内存释放的关联与应用
  • Day52打卡 @浙大疏锦行
  • linux驱动开发(7)-互斥与同步
  • 从0到1做一个“任务管理系统”:Spring Boot + Vue 实战教程(含源码)
  • js实现输入高亮@和#后面的内容
  • uniapp 腾讯云 COS 文件管理进阶(文件夹分类与批量操作)
  • ThreadLocal为什么会导致内存泄漏(详细讲解)
  • Android NumberPicker使用大全
  • 数据管理四部曲:元数据管理、数据整合、数据治理、数据质量管控
  • ArcGIS数据管理与转换、地图制作、数据制备、矢量空间分析、栅格空间分析、空间插值、三维分析、高级建模
  • Packagerun:VSCode 扩展 快捷执行命令
  • Python第八周作业
  • ZeroTier+CCproxy+Proxifier实现内网穿透和流量转发
  • 让报表成为生产现场的“神经系统”,推动管理自动化升级
  • 第30节 Node.js C/C++ 插件
  • Appium+python自动化(二十一)- Monkey指令操作手机
  • Vue3+TypeScript实现访问者模式
  • PyTorch深度学习框架60天进阶学习计划-第57天:因果推理模型(二)- 高级算法与深度学习融合
  • ARM 和 x86_64是什么关系
  • 论文阅读:speculative decoding
  • 校赛2025迎新杯题解
  • 欧盟RED网络安全标准EN 18031-2的要求
  • 什么是序列化?反序列化? 场景使用? 怎么实现???
  • 「ECG信号处理——(17)基于小波熵阈值的R峰检测(与时域-频域-多尺度小波法对比)」2025年6月12日
  • Docker 安装 Oracle 12C
  • 大厂Java技术面试实录:从基础到架构,谢飞机的面试之旅
  • springboot+mybatis面试题
  • MySQL行锁、记录锁、间隙锁、临建锁、意向锁、表锁