若依微服务版怎样新增业务子模块并使用代码生成实现对表的增删改查

版权声明:本文为博主原创文章,遵循<a href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener"> CC 4.0 BY-SA </a>版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109524479

收起

场景

若依微服务版手把手教你本地搭建环境并运行前后端项目:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303

在前面已经将若依微服务版的项目在本地搭建起来之后,怎样开发具体的业务。

 

搭建好之后的项目结构里,ruoyi-modules是存放业务模块的位置。

ruoyi-fzys就是新增的业务。

注: 

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

新增业务模块并配置

按照项目的结构设计,业务模块的位置是在ruoyi-modules下,所以在此模块上右键-new-Module

 

点击确定后

 

然后点击next

 

为了和之前的模块统一风格的命名方式,所以这里新建的module的坐标是ruoyi-fzyscontrol,然后点击next

 

包括module的名字的命名风格,统一以ruoyi-modules-业务模块名的格式。

新增完模块之后,此业务模块就是上面ruoyi-modules的子模块,可以打开ruoyi-modules的pom.xml

 

可以看到已经自动将新增的业务模块添加到此业务模块下了

然后打开ruoyi-modules-system的系统模块的pom.xml,将其dependencies下和build下的代码复制到上面新建业务模块的pom.xml文件中

当前是如下代码,具体根据自己版本的pom文件去复制

 
  1.     <dependencies>

  2.      

  3.      <!-- SpringCloud Ailibaba Nacos -->

  4.         <dependency>

  5.             <groupId>com.alibaba.cloud</groupId>

  6.             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>

  7.         </dependency>

  8.        

  9.         <!-- SpringCloud Ailibaba Nacos Config -->

  10.         <dependency>

  11.             <groupId>com.alibaba.cloud</groupId>

  12.             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

  13.         </dependency>

  14.        

  15.      <!-- SpringCloud Ailibaba Sentinel -->

  16.         <dependency>

  17.             <groupId>com.alibaba.cloud</groupId>

  18.             <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>

  19.         </dependency>

  20.        

  21.      <!-- SpringBoot Actuator -->

  22.         <dependency>

  23.             <groupId>org.springframework.boot</groupId>

  24.             <artifactId>spring-boot-starter-actuator</artifactId>

  25.         </dependency>

  26.   

  27.         <!-- Swagger -->

  28.         <dependency>

  29.             <groupId>io.springfox</groupId>

  30.             <artifactId>springfox-swagger-ui</artifactId>

  31.             <version>${swagger.fox.version}</version>

  32.         </dependency>

  33.   

  34.         <!-- Mysql Connector -->

  35.         <dependency>

  36.             <groupId>mysql</groupId>

  37.             <artifactId>mysql-connector-java</artifactId>

  38.         </dependency>

  39.        

  40.         <!-- Ruoyi Common Security -->

  41.         <dependency>

  42.             <groupId>com.ruoyi</groupId>

  43.             <artifactId>ruoyi-common-security</artifactId>

  44.         </dependency>

  45.        

  46.         <!-- Ruoyi Common Datascope -->

  47.         <dependency>

  48.             <groupId>com.ruoyi</groupId>

  49.             <artifactId>ruoyi-common-datascope</artifactId>

  50.         </dependency>

  51.        

  52.         <!-- Ruoyi Common Log -->

  53.         <dependency>

  54.             <groupId>com.ruoyi</groupId>

  55.             <artifactId>ruoyi-common-log</artifactId>

  56.         </dependency>

  57.        

  58.         <!-- Ruoyi Common Swagger -->

  59.         <dependency>

  60.             <groupId>com.ruoyi</groupId>

  61.             <artifactId>ruoyi-common-swagger</artifactId>

  62.         </dependency>

  63.        

  64.         <!-- RuoYi Common Redis-->

  65.         <dependency>

  66.             <groupId>com.ruoyi</groupId>

  67.             <artifactId>ruoyi-common-redis</artifactId>

  68.         </dependency>

  69.  
  70.     </dependencies>

  71.  
  72.     <build>

  73.         <plugins>

  74.             <plugin>

  75.                 <groupId>org.springframework.boot</groupId>

  76.                 <artifactId>spring-boot-maven-plugin</artifactId>

  77.                 <executions>

  78.                     <execution>

  79.                         <goals>

  80.                             <goal>repackage</goal>

  81.                         </goals>

  82.                     </execution>

  83.                 </executions>

  84.             </plugin>

  85.         </plugins>

  86.     </build>

然后在新建模块下新建包com.ruoyi.fzyscontrol

 

然后将前面system模块的启动类复制到新建业务的包下并更改名字

 

更改启动类里面的类名和要启动的类名以及启动成功的输出内容。

 

然后将system的yml配置文件复制到新建模块一份,并修改该模块的端口号,这里是9205,以及应用名称

 

示例代码如下

 
  1. # Tomcat

  2. server:

  3.   port: 9205

  4.  
  5. # Spring

  6. spring:

  7.   application:

  8.     # 应用名称

  9.     name: ruoyi-fzyscontrol

  10.   profiles:

  11.     # 环境配置

  12.     active: dev

  13.   cloud:

  14.     nacos:

  15.       discovery:

  16.         # 服务注册地址

  17.         server-addr: 10.61.37.60:8848

  18.       config:

  19.         # 配置中心地址

  20.         server-addr: 10.61.37.60:8848

  21.         # 配置文件格式

  22.         file-extension: yml

  23.         # 共享配置

  24.         shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

然后登录Nacos配置中心,找到配置列表,选择ruoyi-system-dev.yml,点击克隆,并更改Data Id 为ruoyi-fzyscontrol-dev.yml

点击开始克隆

 

然后再选中新克隆的配置文件,点击编辑,将搜索的指定包名的路径改为com.ruoyi.fzyscontrol,这里的包名要与后面生成代码时相对应

注意下面的配置mapper的扫描,找到所有mapper.xml映射文件的地方

这里的路径是在配置的在resources下的mapper目录下的任意子目录下的任意.xml文件

 

示例代码如下

 
  1. # Spring

  2. spring:

  3.   redis:

  4.     host: *****

  5.     port: *****

  6.     password: ******

  7.   datasource:

  8.     driver-class-name: com.mysql.cj.jdbc.Driver

  9.    url:jdbc:mysql://*******:3306/fzys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8

  10.     username: root

  11.     password: 1234

  12.  
  13. # Mybatis配置

  14. mybatis:

  15.     # 搜索指定包别名

  16.     typeAliasesPackage: com.ruoyi.fzyscontrol

  17.     # 配置mapper的扫描,找到所有的mapper.xml映射文件

  18.     mapperLocations: classpath:mapper/**/*.xml

  19.  
  20. # swagger 配置

  21. swagger:

  22.   title: 系统模块接口文档

  23.   license: Powered By ruoyi

  24.   licenseUrl: https://ruoyi.vip

  25.   authorization:

  26.     name: RuoYi OAuth

  27.     auth-regex: ^.*$

  28.     authorization-scope-list:

  29.       - scope: server

  30.         description: 客户端授权范围

  31.     token-url-list:

  32.       - http://localhost:8080/auth/oauth/token

注意将redis和mysql的连接改为自己的。

然后再找到ruoyi-gateway-dev.yml网管的配置文件,点击编辑

 

仿照上面system的配置复制出来一份,并修改为新模块所对应的。

system的配置

 
  1.         # 系统模块

  2.         - id: ruoyi-system

  3.           uri: lb://ruoyi-system

  4.           predicates:

  5.             - Path=/system/**

  6.           filters:

  7.             - StripPrefix=1

新建业务的配置

 
  1.           # fzys控制模块

  2.         - id: ruoyi-fzyscontrol

  3.           uri: lb://ruoyi-fzyscontrol

  4.           predicates:

  5.             - Path=/fzyscontrol/**

  6.           filters:

  7.             - StripPrefix=1

 

更改完之后点击发布。

启动项目并生成代码

依次找到ruoyi-gateway、ruoyi-auth、ruoyi-system、ruoyi-gen下的启动类去启动,注意启动顺序。

网管模块和认证模块要在系统模块和代码生成模块之前。

然后再启动刚才新建的业务模块,此时一个启动五个模块。

 

此时可以去Nacos服务注册中心的服务列表查看,回看到此时会有五个服务。

 

此时就可以打开此项目连接的数据库进行设计业务表,这里设计一个表

 

然后打开前端项目ruoyi-ui

在终端中输入

npm install

安装前端项目依赖

 

安装项目依赖成功之后找到项目的vue.config.js

修改前端项目的端口,默认是80,这里修改为90,

 

然后修改代理的后端的请求地址,这里要与上面后台网关模块中yml配置文件中配置的网关模块相对应

默认网关是8080,这里为了避免端口冲突改为8888

所以这里前端的代理地址的端口也是8888

 

启动前端项目

npm run dev

启动后打开浏览器访问

http://localhost:90/

 

登录成功后找到系统工具-代码生成-导入,选择前面新建的数据库中的表,导入之后,选择并编辑

 

这里修改生成代码时的生成信息,注意这里的包名要与上面配置mapper扫描包的路径一致,并且这里还加了具体业务的包。

这个功能是信号灯控制功能,最终是属于运行调度管理菜单下的功能,所以这里配置的包路径追加了一层运行调度管理,

生成的模块名也叫运行调度管理,但是生成的业务名是其下具体的信号灯控制。

然后点击提交后点击生成,会将生成代码的压缩包下载到本地,解压之后的目录

 

来到项目中新建模块的包下将后端代码复制到相应的位置

 

注意这里的复制后的代码的路径要和你在Nacos中配置文件的配置一致。

然后打开ruoyi-ui前端代码,将生成的vue目录下的前端代码复制到相应的api和views下

 

注意这里的路径,要与vue中调用js方法的路径以及菜单按钮路径中调用vue页面的路径一致。

然后连接到数据库,运行代码生成时的sql文件,将菜单项插入到菜单表中

 

此时会在菜单表中生成具体的菜单

 

前后端联调

因为生成的代码可能会有路径或者url等不对应的问题,所以要实现前后端的联调还需要进行调整。

打开前端代码的js文件的请求后台的url路径为

/runcontrolmange/signallightcontrol/list

然后打开后端controller中具体方法

 

如果这里的controller的路径不对应的话进行修改。

此时路径还是不能匹配。因为之前在Nacos的配置中心配置网关时设置了请求时的前缀

 

所以在请求具体的服务时,前端必须在对应后台Controller的基础上,添加一个网关管理的服务的前缀。

 

所以在前端项目中进行请求的js的url中要根据具体请求的服务添加请求前缀

 

此时访问具体的菜单即可获取到服务

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的Java连接SQL Server数据库并实现增删代码示例: ```java import java.sql.*; public class SQLServerExample { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载驱动程序 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 连接数据库 String url = "jdbc:sqlserver://localhost:1433;databaseName=database_name"; String user = "username"; String password = "password"; conn = DriverManager.getConnection(url, user, password); // 创建 Statement 对象 stmt = conn.createStatement(); // 执行询语句 rs = stmt.executeQuery("SELECT * FROM table_name"); // 处理询结果 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); // TODO: 处理询结果 } // 执行插入语句 String insertSql = "INSERT INTO table_name (id, name) VALUES (1, 'test')"; int rows = stmt.executeUpdate(insertSql); // TODO: 处理插入结果 // 执行更新语句 String updateSql = "UPDATE table_name SET name = 'new_name' WHERE id = 1"; rows = stmt.executeUpdate(updateSql); // TODO: 处理更新结果 // 执行删除语句 String deleteSql = "DELETE FROM table_name WHERE id = 1"; rows = stmt.executeUpdate(deleteSql); // TODO: 处理删除结果 } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭资源 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 请将 `database_name`、`username` 和 `password` 替换为你实际使用的数据库名称、用户名和密码,将 `table_name` 替换为你要操作的名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值