1. 程式人生 > 其它 >Java連線MySQL8.0樣例程式碼

Java連線MySQL8.0樣例程式碼

程式碼功能: 針對MySQL8.0,可以動態傳入資料庫連線資訊(IP、埠、資料庫、使用者、密碼)、以及需要執行查詢SQL。

注意:由於程式碼中打印表中的資料,所以最後在Main方法傳入的引數是需要是查詢的SQL。

import java.sql.*;

public class RdsConcurrencyTest {

    public static  String host = null;
    public static  String port = null;
    public static  String url = null;
    public static  String name = "com.mysql.cj.jdbc.Driver";
    
public static String user = null; public static String password = null; public static String database = null; public static String sql = null; private static PreparedStatement ps = null; private static Connection conn = null; private static ResultSet rs = null; private
static 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; } } return true; } //獲取Connection連線物件的方法,使用static方便之後在其他類中呼叫 public static Connection getConn() { try { Class.forName(name); conn = DriverManager.getConnection(url, user, password);//獲取連線 } catch (SQLException | ClassNotFoundException e) { e.printStackTrace(); } return conn; } //關閉資源的方法 public static void close(ResultSet rs, PreparedStatement ps, Connection conn) { 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(); } } }
// Main方法沒有傳參時,列印傳參格式
private static void printUsage() { System.err.println("Usage: RdsConcurrencyTest [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"); }
// Main方法
public static void main(String[] args) throws SQLException { if (!parseArgs(args)) { printUsage(); System.exit(1); } if (host == null || port == null || database == null || user == null || password == null || sql == null) { printUsage(); System.exit(1); }else{ url = "jdbc:mysql://" + host + ":" + port + "/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; } RdsConcurrencyTest rds = new RdsConcurrencyTest(); Connection myconn = rds.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 { rds.close(rs,ps,conn); } } }

執行時需要傳入引數:

例如:

--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”,就可以檢視結果