JAVA中資料庫的連線一般方法
阿新 • • 發佈:2019-01-04
註釋比較詳細,其他不做贅述.import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * JDBC:java資料庫連結 使用JDBC連線資料庫的基本流程(此處使用Oracle) * 1:載入驅動類 * 2:與資料庫建立連線 * 3:執行SQL語句 * 4:處理結果集 * 5:關閉連線 * * @author ^_^ * */ public class JDBCDemo { public static void main(String[] args) { String orc="oracle.jdbc.driver.OracleDriver"; //java.sal.Connection //表示與資料庫的連線 Connection conn=null; try { /* * 1: * 載入驅動 * 需要注意,不同的資料庫,引數那個字串內容不同 * * 這一步執行完後也許丟擲: * ClassNotFoundException異常 * 出現原因如下: * 1:資料庫驅動的jar包沒有匯入到環境變數當中 * 2:Class.forName中的字串拼寫錯誤 */ Class.forName(orc); System.out.println("驅動載入成功"); /* * 2:通過DriverManager建立與資料庫的連線 * 其靜態方法getConnection用於獲取連線 * 通常需要三個引數 * 引數1:資料庫的地址以及埠(不同資料庫字串內容不相同) * 格式:jdbc:oracle:thin:@host:port:sid * 引數2:資料庫使用者名稱 * 引數3:資料庫密碼 */ conn=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe",//資料庫的地址及其埠 "system", //資料庫使用者名稱 "8nianji7ban"//資料庫密碼 ); System.out.println("資料庫已經連線"); /* * 3:java.sql.Statement * 該類用於執行SQL語句並獲取結果 */ Statement state =conn.createStatement(); //System.out.println("QQQQQ"); String sql="select ename,job,sal,deptno from emp";//當前需要執行的資料庫語句 System.out.println(sql); /* * Statement針對不同的SQL語句提供了不同的執行方法: * ResultSet executeQuery(String aql) * 該方法專門用來執行DQL語句,返回的ResultSet表示查詢出來的結果集 * * int executeUpdate(String sql) * 該方法專門用來執行DML語句,返回的數字表示執行該語句後影響了表中多少條資料 * * boolean execute(String sql) * 該方法理論上什麼語句都可以執行,但是由於DQL,DML都有專門的方法,所以該方法通常用來執行DDL語句 * 該方法的返回值表示執行SQL語句後是否存在結果集,存在返回true * 若SQL語句本身就有錯誤,直接丟擲異常:SQLException */ System.out.println("正在執行查詢"); ResultSet rs=state.executeQuery(sql);//返回一個結果集 System.out.println("查詢完畢"); /* * 4:遍歷結果集(查詢結果) * ResulSet提供用於遍歷結果集的方法 * boolean next() * 該方法有兩個作用,首先當我們查詢出結果集後RS的指標指向第一條資料之上,所以我們需要先呼叫一次next() * 使其指標移動到第一條資料上,並表示該條資料 * 第二個作業是看返回值,若指標向下移動後,發現沒有資料了,會返回false,若有則返回true,所以我們只有在該方法返回true的時候才獲取當前記錄的各個欄位對應的值 * * RS還提供了若干getXXX(String fieldName) * 方法: * 該方法是用來獲取RS表示的當前記錄當中給定欄位對應的值,不同的欄位由於型別不同,要呼叫相對應的方法 * 例如:varchar2型別就呼叫getString */ while(rs.next()){ //獲取員工名字 String ename=rs.getString("ename"); String job=rs.getString("job"); int sal=rs.getInt("sal"); int deptno=rs.getInt("deptno"); System.out.println(ename+","+job+","+sal+","+deptno); } rs.close(); state.close(); } catch (Exception e) { e.printStackTrace(); // TODO: handle exception }finally{ if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }