免费视频网站建设怎么快速优化关键词
前言:
公司框架项目一直都没认真阅读过,最近项目需要连接oracle数据,所以尝试使用框架连接多数据库。
添加多数据源插件:
我们在项目的插件模块内添加多数据源插件:albedo-dynamic-datasource
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>albedo-plugins</artifactId><groupId>com.albedo.java</groupId><version>2.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>albedo-dynamic-datasource</artifactId><dependencies><!--dynamic datasource多数据源配置--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>${dynamic-datasource.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid-spring-boot-starter.version}</version></dependency><!--oracle数据驱动--><dependency><groupId>com.oracle.ojdbc</groupId><artifactId>ojdbc8</artifactId><version>${oracle.ojdbc.version}</version></dependency><!--oracle数据库字符集--><dependency><groupId>com.oracle.ojdbc</groupId><artifactId>orai18n</artifactId><version>${oracle.ojdbc.version}</version></dependency>
<!-- 如下提供了几种链接sqlserver驱动的方式:yml配置信息参见:https://blog.csdn.net/aw4269/article/details/102267192-->
<!-- driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver-->
<!-- url: jdbc:sqlserver://localhost:1433;databaseName=weighbridge;autoReconnectForPools=true;encrypt=true;trustServerCertificate=true-->
<!-- username: root-->
<!-- password: XunShi@123--><!--使用 mssql-jdbc连接sqlserver--><dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>11.2.1.jre8</version></dependency><!--使用 jtds 连接sqlserver-->
<!-- <dependency>-->
<!-- <groupId>net.sourceforge.jtds</groupId>-->
<!-- <artifactId>jtds</artifactId>-->
<!-- <version>1.2.4</version>-->
<!-- </dependency>--></dependencies>
</project>


在API模块使用多数据源插件:
<!--自定义插件 多数据源配置应用--><dependency><groupId>com.albedo.java</groupId><artifactId>albedo-dynamic-datasource</artifactId><version>${project.release.version}</version></dependency>

配置文件编写
spring:profiles:active: localinclude:- swagger- jwtredis:host: localhostport: 6379password: XunShi123database: 2datasource:
# type: com.zaxxer.hikari.HikariDataSource
# driver-class-name: com.mysql.cj.jdbc.Driver
# username: root
# password: XunShi123
# url: jdbc:mysql://localhost:3306/albedo-liangpeng?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=truedynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源lazy: truedatasource:master:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: XunShi123url: jdbc:mysql://localhost:3306/albedo-liangpeng?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueoracletest:driver-class-name: oracle.jdbc.driver.OracleDriverusername: ZHGK_XSpassword: ZHGK_XSurl: jdbc:oracle:thin:@192.168.0.113:31359/EE.oracle.dockerdruid:validation-query: select 1 FROM DUALsqlservertest:driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriverurl: jdbc:sqlserver://localhost:1433;databaseName=weighbridge;autoReconnectForPools=true;encrypt=true;trustServerCertificate=trueusername: rootpassword: XunShi@123web:root:prefix: /albedo-admin/dist/

启动类忽略默认驱动加载:@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

查询测试:



注意
oracle的表名和字段名一定要大写,否则查询会报错。(或者手写查询需要用""包裹相关的表名和字段名 select * from "sys_log_login")
数据传输同步表结构:将mysql的表同步至oracle和sqlserver,可使用navcate工具->数据传输直接进行。
逆向模型同步表结构:oracle表结构同步也可使用,navcate工具,右键->逆向表到模型->文件->转换模型为->选择对应的要转换的对象->文件导出sql,然后导入到对应的oracle数据库中。
项目框架模块式加载和卸载,一定要仔细梳理各个模块的pom文件找到对应关系。 比如版本号都是在项目的根目录的pom文件进行定义的。
项目mysql数据库一定要有,不能丢失原本的意义。如果想使用代码生成其它类型的数据库,建议操作为将其它数据库同步一份表结构到mysql数据库中进行代码快速生成后再自己写业务逻辑。(如果尝试修改代码生成,在模块albedo-common-gen里面去修改控制器都加上注解@DS("xxxx"),进行尝试,但是有点得不偿失浪费生命!!!)