【數據庫】JDBC連接數據庫

加載JDBC驅動程序
創建數據庫的連接
創建一個statement
執行SQL語句
處理結果
關閉JDBC對象

循序漸進

  • 首先要確認安裝了 MySQL
    在這裏插入圖片描述
    離線安裝選下面的,在線安裝選上面的。
  • 然後導入 MySQL 驅動。
    找到 MySQL 的安裝路徑,找到 MySQL\Connector J 8.0 下的 mysql-connector-java-8.0.15.jar(早一點的版本結尾有bin),然後把這個jar包複製粘貼到 JRE System Library 對應的路徑下。導入後重啓 eclipse 繼續下面的操作步驟。

1 加載JDBC驅動程序

加載驅動程序相當於獲取Driver.class這個類,調用的函數是forName():

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

新版本的MySql中,“com.mysql.jdbc.Driver”已經棄用,使用的是上面這個。

2 創建數據庫的連接

String url = "jdbc:mysql://localhost:3306/sakila?useUnicode=true&chracterEncode=UTF8&serverTimezone=GMT";
String user = "root";
String pwd = "root";
Connection con = DriverManager.getConnection(url, user, pwd);

url 的格式是固定的:jdbc:mysql:// +<域名orIP地址>+ <端口號> + / + <要連接的數據庫名>
?後接的是指定的編碼格式

3 創建一個 statement

Statement stmt = con.createStatement();

4 執行 SQL 語句

String sql = "select * from sys.sys_config";
ResultSet rs = stmt.executeQuery(sql);

5 處理結果

while(rs.next()) {
    System.out.println(rs.getString(1)+"   "+rs.getString(2)+"   "+rs.getString(3));
    }

6 關閉 JDBC 對象

先創建的後關閉。

if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(con!=null) con.close();

一個完整的 demo

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC {
	public static void main(String[] args){
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");

			String url = "jdbc:mysql://localhost:3306/sys?useUnicode=true&chracterEncode=UTF8&serverTimezone=GMT";
			String user = "root";
			String pwd = "root";
			
			Connection con = DriverManager.getConnection(url, user, pwd);
			
			Statement stmt = con.createStatement();
			
			String sql = "select * from sys.sys_config";
			ResultSet rs = stmt.executeQuery(sql);
			
			while(rs.next()) {
				System.out.println(rs.getString(1)+"   "+rs.getString(2)+"   "+rs.getString(3));
			}
			
			if(rs!=null) rs.close();
			if(stmt!=null) stmt.close();
			if(con!=null) con.close();
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章