java連接mysql資料庫的五種方式

2020-12-11 全棧技術資源社區

Jdbc-----資料庫的五種連接方式

第一種方式:將用戶名和密碼封裝在Properties類中

首先,導入資料庫連接包這個是毋庸置疑的。創建一個jdbc驅動dirver。將資料庫(以MySQL為例)的url保存在所創建的字符串url中。如果mysql版本低於8.0,則url保存形式應該為:

String url = "jdbc:mysql://localhost:3306/test"

如果mysql版本為8.0版本或以上,url保存形式為:

String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";

我使用的mysql版本是8.0,所以在後面加上了時區,否則默認是UTC時區,比北京時間晚8小時。

然後將mysql資料庫對應的user和password封裝在Properties類中,最後通過Connection類來創建資料庫連接,原始碼如下:

Driver driver = new com.mysql.jdbc.Driver();

String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";

/*

將用戶名和密碼封裝在Properties中

*/

Properties info = new Properties();

info.setProperty("user","root");

info.setProperty("password","ab20010322");

Connection conn = driver.connect(url,info);

System.out.println(conn);

第二種方式:在方式一的基礎上,利用反射實現驅動

將第一種方式中:

Driver driver = new com.mysql.jdbc.Driver();

更改為:

Class clazz = Class.forName("com.mysql.jdbc.Driver");

Driver driver = (Driver) clazz.newInstance();

相對於第一種方式,兩種實現的功能相同,但是第二種方式利用反射來實現驅動,這樣可以避免使用第三方接口,使得代碼有更好的可移植性。第二種方式原始碼如下:

使用反射獲取Driver類實例

與Driver driver = new com.mysql.jdbc.Driver()功能相同,只是不適用第三方接口,使得程序具有更好的可移植性

Class clazz = Class.forName("com.mysql.jdbc.Driver");

Driver driver = (Driver) clazz.newInstance();

提供要連接的資料庫

提供需要的用戶名和密碼

Connection connection = driver.connect(url,info);

System.out.println(connection);

第三種方式:使用DriveManager(classs)代替Drive

原始碼如下:

提供連接信息

String user = "root";

String password = "ab20010322";

註冊驅動

DriverManager.registerDriver(driver);

獲取連接

System.out.println(DriverManager.getConnection(url,user,password));

第四種方式:將加載驅動的方式隱藏起來

將方式三中

更改為

Class.forName("com.mysql.jdbc.Driver");

這種方式,可以將驅動加載情況隱藏

String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";

加載Driver

Class.forName("com.mysql.jdbc.Driver");

// Driver driver = (Driver) clazz.newInstance();

// DriverManager.registerDriver(driver);

方式五:

將資料庫需要的基本信息放在jdbc.properties配置文件中

對於上面四種連接方式,都將資料庫信息裸露出來。這樣做是不安全的。對此,我們應該將資料庫需要的基本信息放在jdbc.properties配置文件中,再通過InputStream讀取出來。這是安全的也是我們最常用的資料庫連接方式

配置文件jdbc.properties如下:

user=root

password=123456

url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

Driver=com.mysql.cj.jdbc.Driver

注意:

配置文件應該放在src文件夾下2.user和password使用自己的資料庫用戶名和密碼3.如果使用的是mysql8.0以上版本,在配置url文件時應該在後面加上時區,否則會報錯

InputStream inputStream = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");

info.load(inputStream);

String user = info.getProperty("user");

String password = info.getProperty("password");

String url = info.getProperty("url");

String driver = info.getProperty("Driver");

加載驅動

Class.forName(driver);

Connection conn = DriverManager.getConnection(url,user,password);

相關焦點

  • 面試被問:JDBC底層是如何連接資料庫的?|sql|mysql|數據源|java|...
    背景  前兩天一個小夥伴面試的時候,被問JDBC底層是如何連接資料庫的?  他頓時一臉懵逼,因為大部分人只知道JDBC的幾個步驟,至於底層到底是怎麼連接資料庫的,還真不知道。  由於小夥伴是面試高級開發,問這種問題倒也不能說面試官過分,如果是初級或者中級,那問著問題就確實有些過分了。
  • 利用PowerDesigner連接Mysql資料庫並逆向所有表關係圖兩種方式
    想想還是從資料庫入手吧。於是想到了在2015年還是2016年的時候在梳理其他項目使用了powerDesigner連接mysql逆向生成表關係圖。可是當時怎麼做的?徹底忘了。常言:好記性不如爛筆頭,況且我這個沒記性的人了。所以就有了本文。為了以後在用有個參考,也為了有需要的朋友做個參考。好了,廢話不多說。開始幹。
  • java中資料庫:JDBC的使用
    JDBC是java中提供的一套資料庫編程API,它定義了一套用來訪問資料庫的標準Java類庫(位於java.sql和javax.sql
  • Java中加載資料庫驅動的方式有幾種?背後的原理是什麼?
    Driver接口先來了解下java.sql.Driver接口,java.sql.Driver是所有JDBC驅動程序需要實現的接口。這個接口是提供給資料庫廠商使用的,不同廠商實現該接口的類名是不同的,例如MySQL 8.x的JDBC驅動的類名是:com.mysql.cj.jdbc.Driver。
  • 面試被問:JDBC底層是如何連接資料庫的?
    背景前兩天一個小夥伴面試的時候,被問JDBC底層是如何連接資料庫的?他頓時一臉懵逼,因為大部分人只知道JDBC的幾個步驟,至於底層到底是怎麼連接資料庫的,還真不知道。由於小夥伴是面試高級開發,問這種問題倒也不能說面試官過分,如果是初級或者中級,那問著問題就確實有些過分了。
  • MySQL 資料庫「十宗罪」(十大經典錯誤案例)
    Top 1:Too many connections(連接數過多,導致連接不上資料庫,業務無法正常進行)mysql> show variables like '%max_connection%';| Variable_name   | Value |max_connections | 151   | mysql>
  • 每天一分鐘,python一點通(Python 連接資料庫mysql)
    mysql資料庫每天一分鐘,python一點通(workbench new table),且建立了一個資料庫表,該如何操作資料庫?  Python 連接資料庫mysql  在操作mysql資料庫前,請先安裝pymysql(pip install pymysql)  import pymysql.cursorsMYSQL_HOSTS='localhost' # 本地資料庫,若是伺服器上的資料庫,請輸入伺服器IPMYSQL_USER
  • Java開發工程師如何在Mysql資料庫中創建表
    首先我們需要在資料庫中創建兩張表用來學習MyBatis對資料庫增刪改查的使用方法。如果是新安裝的資料庫可以直接複製我下面的sql進行表創建,如果是已使用中的資料庫可能表明會與我的表名衝突,需要創建一個新的database再執行sql,也可以直接刪除原來的表,如果表有外鍵關聯需要先解除外鍵約束再刪除。
  • C#連接MySQL資料庫實例
    連接mysql查詢數據並將數據顯示到界面的datagridview裡面.connetStr = "server=127.0.0.1;port=3306;user=root;password=a123456.; database=thzdb;"; MySqlConnection con = new MySqlConnection(connetStr); con.Open(); Console.WriteLine("數
  • 「詳細」MySQL資料庫與JDBC編程
    MySQL重命名數據表ALTER TABLE 表名 rename to 新表名;MySQL修改列名ALTER TABLE 表名 CHANGE 列名 新列名 type [default expr] [first|afterColName]資料庫約束5種完整性約束
  • VBA連接Mysql資料庫
    ■MySQL的環境配置■VBA連接MySQL資料庫的代碼框架,下面的界面也是Navicat裡面連接設置頁面。MySQL現在給出連接Mysql資料庫的框架代碼▍框架代碼:>ADO建立對數據源的連結■ADO執行SQL語言▶▶▶關於引用ADO類庫:連接資料庫需要通過
  • 沒遇到過這十個MySQL資料庫經典錯誤,你一定不是個好工程師
    當向資料庫中寫入創建表,並插入中文時,會出現這種問題。此報錯會涉及資料庫字符集的問題。解決思路:對於中文亂碼的情況,記住老師告訴你的三個統一就可以。還要知道在目前的 MySQL 資料庫中字符集編碼都是默認的 UTF8。處理辦法:數據終端,也就是我們連接資料庫的工具設置為 utf8。
  • Java資料庫連接性簡介
    查找JDBC驅動程序要查找您要使用的資料庫的驅動程序,只需對資料庫和JDBC進行網絡搜索。例如,輸入「 mysql jdbc driver」將打開MySQL驅動程序。我挑戰您尋找沒有JDBC驅動程序的Java兼容資料庫!
  • 使用PowerDesigner16.5 逆向資料庫生產表結構或導出word文檔
    修改成自己解壓後32位JDK的位置2:mysql-connector-java-5.1.25-bin.jar:最好把mysql連接放到PD安裝目錄下。修改完成之後,將啟動腳本發送快捷方式到桌面。下次啟動的時候,直接在桌面點擊啟動腳本即可。三:連接資料庫3.1:啟動雙擊啟動腳本後,啟動PD.選擇Create Model..。
  • Mysql資料庫備份和還原常用的命令
    備份MySQL資料庫的命令mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql備份MySQL資料庫為帶刪除表的格式備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫
  • Mysql資料庫的使用方法
    一、資料庫的基本概念1、 常用的兩種引擎: (1) InnoDB引擎:        1)支持ACID,簡單地說就是支持事務完整性、一致性;        2)支持行鎖,以及類似ORACLE的一致性讀,多用戶並發;        3)獨有的聚集索引主鍵設計方式,可大幅提升並發讀寫性能;
  • 考前複習必備MySQL資料庫(關係型資料庫管理系統)
    命令:mysql -h遠程主機ip -uroot -p密碼退出mysql命名:exit回車,但是注意,想要成功連接到遠程主機,需要在遠程主機打開mysql遠程訪問權限。mysql和sqlite的區別mysql是web世界中使用最廣泛的資料庫伺服器。mysql是為伺服器端設計的資料庫,能承受高並發訪問,同時佔用的內存也遠遠大於SQLite。
  • ubuntu18.04 django 連接 mysql 資料庫方法和常見錯誤總結
    本人電腦系統 ubuntu18.04 , django版本 2.2在ubuntu電腦使用django連接mysql資料庫的時候遇到了一些問題
  • JDBC MySQL
    三、JDBC基本操作(1)定義記錄的類(可選)(2)連接的獲取(3)insert(4)update(5)select(6)delete四、測試五、代碼分析六、思考問題  前言:什麼是JDBC  維基百科的簡介:
  • MYSQL資料庫操作案例
    MySQL 創建資料庫CREATE DATABASE 資料庫名;以下命令簡單的演示了創建資料庫的過程,數據名為 RUNOOB:[root@host]# mysql -u root -p >Enter password:****** # 登錄後進入終端mysql> create DATABASE RUNOOB;MySQL 刪除資料庫drop database <資料庫名>;