在測試中,我們常常需要連接Oracle數據庫來進行查詢對比。下面,我們就來看看,如何使用java代碼來連接數據庫,並且取出我們想要的數值。
首先,java中如果要連接Oracle數據庫,需要jdbc的jar包。下載地址:https://mvnrepository.com/artifact/ojdbc/ojdbc
根據使用Oracle的方式,連接所使用的的Url為以下兩種:
Oracle URL:
jdbc:oracle:thin:@HostName(or IP address):1521:SID
jdbc:oracle:thin:@//HostName(or IP address):1521:SERVICENAME
這里的參數thin表示小型驅動,HostName(or IP address):1521這個是指代Oracle數據庫的具體網絡位置。SID/ServiceName這個是指具體鏈接的數據庫SID或者數據庫的服務。
在真正連接數據庫之前,我們需要先注冊一個驅動。
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); }catch (ClassNotFoundException e) { System.out.println("找不到驅動程序類,驅動加載失敗!");
這種方式是使用類加載的方式來注冊驅動。
當然,我們還可以使用新建OracleDriver對象的方式來注冊驅動。
Driver driver = new OracleDriver(); DriverManager.deregisterDriver(driver);
兩種方式均可以,可以根據實際情況進行選擇。
接下來,我們就要獲取Oracle數據庫的鏈接。
connect = DriverManager.getConnection("jdbc:oracle:thin:@OracleDataBaseHost:1521:XE", "連接oracle數據庫用戶名", "用戶名密碼");
如果使用的是driver對象注冊的。可以使用下面的代碼
Properties properties = new Properties(); properties.put("user", "oracle數據庫用戶名"); properties.put("password", "用戶名密碼"); connect = driver.connect("jdbc:oracle:thin:@localhost:1521:XE", properties);
有了鏈接之后,我們就可以使用這個鏈接,來獲取執行sql語句的對象。
statement = connect.createStatement();
如果是driver對象的方式
PreparedStatement preState = connect.prepareStatement("select * from tb1 where name = ?");
再接下來,就是具體的執行sql的語句
resultSet = statement.executeQuery("select * from tb1");
如果是PrepareStatement的對象,也是一樣的。
ResultSet rs = preState.executeQuery();
然后,根據得到的ReslutSet來對結果進行處理。
while (rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String wbsCode = rs.getString("wbscode"); System.out.println(id+" "+name+" "+ wbsCode); //打印輸出結果集 }
最后,逐一關閉鏈接的資源。不關閉的話會影響性能、並且占用資源。注意關閉的順序,最后使用的最先關閉 !
try { if (rs!=null) rs.close(); if (statement!=null) statement.close(); if (connect!=null) connect.close(); } catch (SQLException e) { e.printStackTrace(); }
這樣,整體就完成了從Oracle數據庫連接並讀取數據的操作。