Java连接MySQL8.0样例代码
代码功能: 针对MySQL8.0,可以动态传入数据库连接信息(IP、端口、数据库、用户、密码)、以及需要执行查询SQL。
注意:由于代码中打印表中的数据,所以最后在Main方法传入的参数是需要是查询的SQL。
package com.mysql.test; import java.sql.*; public class RdsTest { public String host = null;
public String port = null;
public String url = null;
public String user = null;
public String password = null;
public String database = null;
public String sql = null; private PreparedStatement ps = null;
private Connection conn = null;
private ResultSet rs = null; // 处理Main方法传入的参数
private boolean parseArgs(String[] args) {
for(int i = 0; i < args.length;) {
if (args[i].equals("--host")) {
host = args[i+1];
i += 2;
} else if (args[i].equals("--port")) {
port = args[i+1];
i += 2;
} else if (args[i].equals("--database")) {
database = args[i+1];
i += 2;
} else if (args[i].equals("--user")) {
user = args[i+1];
i += 2;
} else if (args[i].equals("--password")) {
password = args[i+1];
i += 2;
} else if (args[i].equals("--sql")) {
sql = args[i+1];
i += 2;
} else {
return false;
}
}
if (host == null || port == null || database == null ||
user == null || password == null || sql == null) {
return false;
}
return true;
} //如果没有传参或者传参错误,打印传参的格式
private void printUsage() {
System.err.println("Usage: RdsTest [options]");
System.err.println("\t--host\thost ip");
System.err.println("\t--port\tport");
System.err.println("\t--database\tdatabase");
System.err.println("\t--user\tuser");
System.err.println("\t--password\tpassword");
System.err.println("\t--sql\tsql");
} //获取Connection连接对象的方法,使用static方便之后在其他类中调用
public Connection getConn() {
try {
String name = "com.mysql.cj.jdbc.Driver";
Class.forName(name);
conn = DriverManager.getConnection(url, user, password);//获取连接
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
} //关闭资源的方法
public void close() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
} } //执行查询,打印结果
public void executesql(){
url = "jdbc:mysql://" + host + ":" + port + "/" + database + "?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT";
Connection myconn = getConn(); try {
ps = myconn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
String uid = rs.getString(1);
String ufname = rs.getString(2);
System.out.println(uid + "\t" + ufname + "\t");
} } catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
close();
} } // Main方法入口
public static void main(String[] args) throws SQLException { RdsTest rds = new RdsTest();
if (!rds.parseArgs(args)) {
rds.printUsage();
System.exit(1);
}
// 执行SQL
rds.executesql(); } }
执行时需要传入参数:
例如:
--host localhost --port 3306 --database test --user root --password Root@1234 --sql "select * from my_test"
如果不传参数或者少传参数,会报如下错误:
IntelliJ IDEA 给Main方法入口传参:
在编辑器中右键"more Run/Debug"——> "Modify Run Configuration"
在下图中位置,添加传入的参数,然后点击“Apply”,然后点击“OK”。
--host localhost --port 3306 --database test --user root --password Root@1234 --sql "select * from my_test"
这时再执行 “Run”,就可以查看结果
Java连接MySQL8.0样例代码的更多相关文章
- JAVA连接MYSQL8.0问题
title: java连接mysql8.0问题 date: 2018-07-08 19:27:38 updated: tags: description: keywords: comments: im ...
- java连接mysql8.0.28数据库实例
首先说明,由于是8版本的数据库,所以配置类的写法上与5版本的有所区别,需要注意,同时用idea或eclipse时需要导入jar包,jar包的下载链接: https://dev.mysql.com/ge ...
- Java 连接 Hive的样例程序及解析
以后编程基于这个样例可节省查阅API的时间. private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriv ...
- Java连接MySQL8.0以上版本数据库方式
MySQL 8.0 开始数据库相比常用的 5.X 版本发生了比较大的变化,我们在连接数据库的过程中许多地方也要发生一些变化. 总结一下,想要利用 mysql-connector-java 与 MySQ ...
- java 线程、线程池基本应用演示样例代码回想
java 线程.线程池基本应用演示样例代码回想 package org.rui.thread; /** * 定义任务 * * @author lenovo * */ public class Lift ...
- java文件夹相关操作 演示样例代码
java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...
- java 又一次抛出异常 相关处理结果演示样例代码
java 又一次抛出异常 相关处理结果演示样例代码 package org.rui.ExceptionTest; /** * 又一次抛出异常 * 在某些情况下,我们想又一次掷出刚才产生过的违例,特别是 ...
- java I/O进程控制,重定向 演示样例代码
java I/O进程控制,重定向 演示样例代码 package org.rui.io.util; import java.io.*; /** * 标准I/O重定向 */ public class Re ...
- Java 18 新增@snipppet标签,注释中写样例代码更舒适了!
在这次的Java 18中,新增了一个@snipppet标签,主要用于JavaDoc中需要放示例代码的场景.其实在Java 18之前,已经有一个@code标签,可以用于在JavaDoc中编写小段的代码内 ...
- Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...
随机推荐
- window对象的常见事件
2.1 窗口加载事件 window.onload = function() { } 或者 window.addEventListener("load", function(){}) ...
- POJ
//poj 2080//题目大意:给定天数,从2000年1月1日经过这些天后的 年 月 日 及 星期几//代码参照大牛的写的,本人还是处于菜鸟阶段,思路很好#include<stdio.h> ...
- js - setInterval的停止与重新启动
使用js处理问题的时候,我们可能会经常使用到setInterval()来进行定时任务或者轮询的操作,那么如何让setInterval停止和重新启动呢,下边的代码就可以实现的呦,如果有更好的方法,不吝赐 ...
- phpcms - 在删除文章后实现自动删除tag标签
在使用phpcms程序制作网站的时候,我们会发现文章模型新建一篇文章后会自动向数据库中插入关键词,但如果删除文章后,数据库中的关键词表中字段中还存在之前文章的关键词,那么怎样才能在phpcms后台中删 ...
- [转帖]Nginx Rewrite重写功能
目录 一.rewrite的概述 1.1.概述 1.2 跳转场景 1.3 跳转实现 1.4 Rewrite实际场景 二.常用的nginx正则表达式 三.rewrite命令 3.1 rewrite的语法格 ...
- [转帖]什么是ClickHouse?
什么是ClickHouse? ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS). 在传统的行式数据库系统中,数据按如下顺序存储: Row WatchID JavaEn ...
- [转帖]TiUP Cluster 命令合集
https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster TiUP Cluster 是 TiUP 提供的使用 Golang 编写的集 ...
- [转帖]JMeter学习(二)搭建骨架--JMeter重要组件
https://www.cnblogs.com/tian-yong/p/4460665.html JMeter的属性和变量 JMeter属性统一定义在jmeter.properties文件中.JMet ...
- [转帖]调试springboot数据库系统应用时常用debug日志配置, 解决问题缩小范围时常用
https://www.yihaomen.com/article/1853.html 摘要: 用 spring boot 开发应用时,在遇到麻烦问题时,经常会打开debug日志,下面记录一个通用的思路 ...
- [转帖]Tomcat maxKeepAliveRequests
https://www.cnblogs.com/turn2i/p/10480088.html 在写这个问题前,其实我是为了分析项目碰到的一个tcp close wait问题.这个问题就不在这里讲了. ...