1. 程式人生 > >JDBC程式設計步驟

JDBC程式設計步驟

1.Load the Driver

    1. Class.forName() |  Class.forName().newInstance() | new DriverName()

    2. 例項化時自動向DriverManager註冊,不需要顯式呼叫DriverManager.registerDriver方法

2.Connect to the DataBase

    1. DriverManager.getConnection()

3.Execute the SQL

    1. Connection.CreationStatement()

    2.Statement.executeQuery()

    3.Statement.executeUpdate()

4.Retrieve the result data

    1. 迴圈去的結果 while(rs.next())

5.Show the result data

    1. 將資料庫中的各種型別轉換為Java中的型別(getXXX)方法

6.Close

    1.close the resultset. / close the statement / close the connection

實際操作中的知識點:

    1.獲取安裝在本機上的oracle資料庫URL:

        使用oracle,有一個tnsnames.ora

定義資料庫地址的檔案。該檔案通常位於Oracle安裝目錄下。我電腦上的示例如下:

SOUJIUSUBDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-7ROL9EN)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SOUJIUSUBDB)
    )
  )

        從這個條目可以看出我的jdbc連線字串是: jdbc:oracle:thin:@DESKTOP-7ROL9EN:1521:SOUJIUSUBDB

2.Java project中的oracle驅動包匯入

        這個知識點非常簡單了,可以百度java project匯入oracle驅動包,有很多回答的說。但是有一點需要注意,oracle驅動包版本要和你的jdk版本相容。我的電腦上安裝的jdk版本是1.8,oracle用的是11g,那麼jdbc相對應的驅動包應該是ojdbc6.jar。

import java.sql.*;


public class TestJDBC {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		/**
		 * Class.forName("oracle.jdbc.driver.OracleDriver.class");
		 * 這句話為丟擲異常,這是為什麼??
		 *Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver.class
			at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
			at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
			at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
			at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
			at java.lang.Class.forName0(Native Method)
			at java.lang.Class.forName(Class.java:264)
			at TestJDBC.main(TestJDBC.java:8)
		 */
		new oracle.jdbc.driver.OracleDriver();
		Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@DESKTOP-7ROL9EN:1521:SOUJIUSUBDB", "scott", "tiger"); //引數1:資料庫連線字串,引數2.3:使用者名稱和密碼
		Statement statement = connection.createStatement();
		ResultSet resultSet = statement.executeQuery("select * from dept");
		while(resultSet.next()) {
			System.out.println(resultSet.getString("deptno"));
			System.out.println(resultSet.getInt("deptno"));
		}
		resultSet.close();
		statement.close();
		connection.close();
	}

}

有個問題:上邊的程式碼我在第一步中使用的方法是 new oracle.jdbc.driver.OracleDriver()而不是 Class.forName("oracle.jdbc.driver.OracleDriver.class");因為在我練習的過程中我發現使用Class.forName()會異常報錯,錯誤我記錄在了註釋中,這個錯誤我並沒有解決。如果有誰看到這篇文章,可以留言分享你的解決辦法,感激不盡!