如何用maven-shade-plugin在MySQL项目中解决多版本驱动冲突问题?
摘要:开心一刻 清明节那天,看到一小孩在路边烧纸时不时地偷偷往火堆里扔几张考试卷子边烧边念叨:爷爷呀,你岁数大了,在那边多做做题吧,对脑子好,要是有不懂的地方,就把我老师带走,让他教您! 前提说明 假设 MySQL 5.7.36 的库 qsl_d
开心一刻
清明节那天,看到一小孩在路边烧纸
时不时地偷偷往火堆里扔几张考试卷子
边烧边念叨:爷爷呀,你岁数大了,在那边多做做题吧,对脑子好,要是有不懂的地方,就把我老师带走,让他教您!
前提说明
假设 MySQL 5.7.36 的库 qsl_datax
有表 qsl_datax_source 和 数据
CREATE TABLE `qsl_datax_source` (
`id` bigint(20) NOT NULL COMMENT '自增主键',
`username` varchar(255) NOT NULL COMMENT '姓名',
`password` varchar(255) NOT NULL COMMENT '密码',
`birth_day` date NOT NULL COMMENT '出生日期',
`remark` text,
PRIMARY KEY (`id`)
) ENGINE = InnoDB ;
INSERT INTO `qsl_datax_source` VALUES (1, '张三', 'z123456', '1991-01-01', '张三');
INSERT INTO `qsl_datax_source` VALUES (2, '李四', 'l123456', '1992-01-01', '李四');
INSERT INTO `qsl_datax_source` VALUES (3, '王五', 'w123456', '1993-01-01', '王五');
INSERT INTO `qsl_datax_source` VALUES (4, '麻子', 'm123456', '1994-01-01', '麻子');
需要将表中数据同步到 MySQL 8.0.30
sql_db 库的 qsl_datax_source 表中,并且只用 JDBC 的方式,该如何实现?你们可能觉得非常简单,直接引入 mysql-connector-j 依赖
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
然后直接写同步代码
public static void main(String[] args) throws Exception {
String url5 = "jdbc:mysql://192.168.2.118:3307/qsl_datax?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
String url8 = "jdbc:mysql://192.168.2.118:3311/sql_db?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
Properties pro = new Properties();
pro.put("user", "root");
pro.put("password", "123456");
// 加载驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立连接
Connection conn5 = DriverManager.getConnection(url5, pro);
// 查数据
Statement statement = conn5.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM qsl_datax_source");
StringBuilder insertSql = new StringBuilder("INSERT INTO qsl_datax_source(id,username,password,birth_day,remark) VALUES ");
while (resultSet.next()) {
// 拼接sql
