JDBC學習筆記(一)

JDBC(Java Database Connectivity,Java數據庫鏈接),是Java訪問數據庫的程序接口,由一組用Java語言編寫的類與接口組成.JDBC實際上就是由Java實現的數據庫訪問中間件。

 

JDBC 鏈接數據庫步驟

1.在項目中導入驅動
相關連接html

  • Mysql JDBC驅動包----MySQL Connector/J 下載地址:請點這裏

下載驅動包提取mysql-connector-java-5.1.38-bin.jar包
右擊 項目-> Build Path -> Configure Build Path -> Add Exteranl JARs...選擇mysql-connector-java-5.1.38-bin.jar文件
2.在項目中加載JDBC驅動程序
在鏈接數據庫以前,首先要加載想要鏈接的數據庫的驅動到JVM(Java虛擬機),這經過java.lang.Class類的靜態方法forName(String  className)實現。成功加載後,會將Driver類的實例註冊到DriverManager類中。java

  1. Mysql 驅動名:com.mysql.jdbc.Driver 
  1. 加載方式: Class.forName(驅動名);

3.鏈接及關閉數據庫mysql

        要鏈接數據庫,須要向java.sql.DriverManager請求並得到Connection對象,該對象就表明一個數據庫的鏈接。sql

        使用DriverManager的getConnectin(String url , String username , String password )方法傳入指定的欲鏈接的數據庫的路徑、數據庫的用戶名和密碼來得到。數據庫

  • DriverManager 驅動管理類,主要負責獲取一個數據庫的鏈接; 
  •  static Connection getConnection(String url,String user,String password)試圖創建到給定數據庫URL  的 鏈接。
  • MySQL 數據庫的鏈接地址格式:" jdbc:mysql://IP 地址:端口號/數據庫名稱  "
  • Connection 接口與特定數據庫的鏈接(會話)。 
  •  void close() 當即釋放此 Connection 對象的數據庫和 JDBC 資源,而不是等待它們被自動釋放。

4.代碼演示編程

代碼1:服務器

package cn.iborder.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class test1 {
    //驅動名稱
	private static String jdbcDriver="com.mysql.jdbc.Driver";
    //數據庫地址
	private static String url="jdbc:mysql://localhost:3306/test";
    //數據庫用戶名
	private static String user="root";
    //數據庫密碼
	private static String password="root";	
	
	public static void main(String[] args) {
		try {
			Class.forName(jdbcDriver); //加載驅動
			System.out.println("JDBC驅動加載成功");
		} catch (ClassNotFoundException e) {
			// TODO 自動生成的 catch 塊
//			e.printStackTrace();
			System.out.println("JDBC驅動加載失敗");
		}
		Connection con=null;
		try {
            //鏈接數據庫
			con = DriverManager.getConnection(url, user, password);
			System.out.println("鏈接數據庫成功");
		} catch (SQLException e) {
			// TODO 自動生成的 catch 塊
//			e.printStackTrace();
			System.out.println("鏈接數據庫失敗");
		}finally{
			try {
                //關閉數據庫
				con.close();
				System.out.println("關閉數據庫成功");
			} catch (SQLException e) {
				// TODO 自動生成的 catch 塊
//				e.printStackTrace();
				System.out.println("關閉數據庫失敗");
			}
		}
	}
}

執行結果:ui

JDBC驅動加載成功
鏈接數據庫成功
關閉數據庫成功

代碼2:url

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestSqlConnect {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		final String SQL_DRIVER = "com.mysql.jdbc.Driver";			//jdbc驅動
		final String SQL_URL = "jdbc:mysql://localhost:3306/test";	//數據庫地址
		final String SQL_USER = "root";		//數據庫用戶名
		final String SQL_PASSWORD = "root";	//數據庫密碼
		Connection connSQL = null;
		Statement statement = null;
		String sql = null;
		ResultSet resultSet = null;	//結果集
		try {
			Class.forName(SQL_DRIVER);
			connSQL = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PASSWORD);
			statement = connSQL.createStatement();
			sql = "select * from user";
			resultSet = statement.executeQuery(sql);
			while(resultSet.next()){
			    int uid  = resultSet.getInt("uid");
			    String username = resultSet.getString("username");
			    System.out.println("uid: " + uid+" , username: " + username);
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			System.out.println("加載驅動失敗!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			System.out.println("鏈接數據庫失敗!");
		} finally {
			try {
				resultSet.close();
				statement.close();
				connSQL.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

JDBC API提供瞭如下接口和類:spa

  • DriverManager: 這個類管理數據庫驅動程序的列表。內容是否符合從Java應用程序使用的通訊子協議正確的數據庫驅動程序的鏈接請求。識別JDBC在必定子協議的第一個驅動器將被用來創建數據庫鏈接。

  • Driver: 此接口處理與數據庫服務器通訊。不多直接與驅動程序對象。相反,使用DriverManager中的對象,它管理此類型的對象。它也抽象與驅動程序對象工做相關的詳細信息

  • Connection : 此接口與接觸數據庫的全部方法。鏈接對象表示通訊上下文,即,與數據庫中的全部的通訊是經過惟一的鏈接對象。

  • Statement : 可使用這個接口建立的對象的SQL語句提交到數據庫。一些派生的接口接受除執行存儲過程的參數。

  • ResultSet: 這些對象保存從數據庫後,執行使用Statement對象的SQL查詢中檢索數據。它做爲一個迭代器,讓您能夠經過移動它的數據。

  • SQLException: 這個類處理髮生在一個數據庫應用程序的任何錯誤。

有下列涉及構建JDBC應用程序的六個步驟:

  • 導入數據包 . 須要包括含有須要進行數據庫編程的JDBC類的包。大多數狀況下,使用 import java.sql.*  就能夠了.

  • 註冊JDBC驅動程序. 須要初始化驅動程序,能夠與數據庫打開一個通訊通道。

  • 打開鏈接. 須要使用DriverManager.getConnection() 方法建立一個Connection對象,它表明與數據庫的物理鏈接。

  • 執行查詢 . 須要使用類型聲明的對象創建並提交一個SQL語句到數據庫。

  • 從結果集中提取數據 . 要求使用適當的關於ResultSet.getXXX()方法來檢索結果集的數據。

  • 清理環境. 須要明確地關閉全部的數據庫資源相對依靠JVM的垃圾收集。

 

Statement接口的經常使用方法

boolean execute()  容許執行查詢語句、更新語句、DDL語句。返回值爲true時,表示執行的是查詢語句,能夠經過getResultSet方法獲取結果;返回值爲false時,執行的是更新語句或DDL語句,getUpdateCount方法獲取更新的記錄數量。  int executeUpdate(String sql) 執行給定 SQL 語句,該語句可能爲 INSERT、UPDATE 或 DELETE 語句,或者不返回任何內容的 SQL 語句(如 SQL DDL 語句)。  ResultSet executeQuery(String sql)  執行給定的 SQL 語句,該語句返回單個 ResultSet 對象。返回值是更新的記錄數量

相關文章
相關標籤/搜索