1. 程式人生 > 其它 >JDBC連線(Java連結資料庫)

JDBC連線(Java連結資料庫)

技術標籤:資料庫MySQLJDBCjavamysqljdbc

文章目錄

1.JDBC概念以及本質

*   概念:Java DataBase Connectivity,Java資料庫連線,Java語言操作資料庫
*   本質:官方定義了一套操作關係型資料庫的規則,即介面,各個資料庫廠商去實現這套介面,提供資料庫驅動的jar包,我們可以使用這套介面程式設計,真正執行的程式碼是驅動jar包的實現類。

2.JDBC的快速入門步驟

1.匯入jar包(文章末尾有連結)

		* 複製jar包到工程目錄下
		* 右鍵點選工程,進行Add as Library

2.註冊驅動

    //1.載入驅動
    Class.forName("com.mysql.cj.jdbc.Driver");

3.獲取資料庫連線物件 Connection

	Connection connection = DriverManager.getConnection("url","資料庫使用者名稱","資料庫密碼");
	注意:如果遇到時區問題,在url後面加上?serverTimezone=UTC

4.定義SQL語句

	String sql = "update stu set address = '河南' where id = 4"
;
	SQL語句可以寫增刪改查語句

5.獲取執行SQL的物件Statement

	Statement statement = connection.createStatement();

6.執行SQL語句

	boolean execute = statement.execute(sql);
	可以返回Boolean型別,也可以返回int型別

7.處理返回的結果

	System.out.println(execute);
	列印結果,這個結果不重要,重要的是資料庫中的資料是否改變

8.釋放資源

 	statement.close();
    connection.close();

3.詳解程式碼中各個物件

1.DriverManager:驅動管理物件

	* 功能
		1.註冊驅動:告訴程式該使用哪一個資料庫驅動jar包
		2.獲取資料庫連線:
			* 方法:getConnection(String url, String user, String password)
			* 引數:
				*  url:指定連線的路徑(mysql,其他資料庫存在差異)
					* 語法:jdbc:mysql://ip地址(域名):埠號/資料庫名稱
					* 例子:jdbc:mysql://localhost:3306/mydb1
				*  user:資料庫使用者名稱
				*  password:資料庫密碼

2.Connection:資料庫連線物件

	* 功能
		1. 獲取執行SQL的物件
			 * Statement createStatement() 
			 * PreparedStatement prepareStatement(String sql) 
		2.管理事務:
			* 開啟事務:setAutoCommit(boolean autoCommit) :設定該方法引數為false,即開啟事務
			* 提交事務:commit() 
			* 回滾事務:rollback() 

3.Statement:執行SQL物件

	1.執行SQL
		 1. boolean execute(String sql) :執行給定的 SQL 語句,該語句可能返回多個結果。(瞭解)
		 2. int executeUpdate(String sql) :執行DML語句或DDL語句
		 	* 返回值:影響的行數 ,可以通過這個影響的行數來判斷DML語句是否執行成功,返回值>0則成功,反之則失敗
		 3. ResultSet executeQuery(String sql) :執行DQL語句,

4.ResultSet:結果集物件(執行DQL語句中出現)封裝查詢結果
在這裡插入圖片描述

	1. 方法
		* next()方法:將游標從當前位置向前移一行。(最開始游標在表頭行)如上圖所示
		* getXxx(引數),獲取資料
				* Xxx:代表資料型別   比如getInt,getString
				* 引數:
					1. int型別:代表列的編號,從1開始   如:getString(1),表示獲取第1列
					2. String型別:代表列名稱。  如:getInt("age"),表示獲取age列(常用)
		* 注意:
			* 使用步驟
				1.遊標向下移動一行
				2.判斷是否有資料
				3.獲取資料
		* 可以用while迴圈獲取結果集
	2.例項語句
	//迴圈判斷遊標是否是最後一行
	while (resultSet.next()){
		//獲取資料
	    int id = resultSet.getInt("id");
	    String name = resultSet.getString("name");
	    int age = resultSet.getInt("age");
	    String sex = resultSet.getString("sex");
	    String address = resultSet.getString("address");
	    System.out.println( id + "," + name + "," + age + "," + sex + "," + address );
        }

4.具體例項程式碼及結果演示

public static void main(String[] args) throws Exception {
        //1.載入驅動
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2.建立連線物件
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC","root","root");
        //3.建立SQL命令物件
        Statement statement = connection.createStatement();
        //4.獲取結果集物件
        String sql = "select * from stu";
        ResultSet resultSet = statement.executeQuery(sql);
        //5.操作結果集
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int age = resultSet.getInt("age");
            String sex = resultSet.getString("sex");
            String address = resultSet.getString("address");
            System.out.println( id + "," + name + "," + age + "," + sex + "," + address );
        }
        //6.釋放資源
        resultSet.close();
        statement.close();
        connection.close();
    }

結果展示
在這裡插入圖片描述
這就是用Java程式碼操作資料庫,後期還會分享一些關於這類知識,希望大家多多關注!
mysql的jar包獲取方式:
連結:https://pan.baidu.com/s/1jKst2LAUHz-Jhzh4RHPhnQ
提取碼:vfmh