JDBC鏈接數據庫的幾個步調。本站提示廣大學習愛好者:(JDBC鏈接數據庫的幾個步調)文章只能為提供參考,不一定能成為您想要的結果。以下是JDBC鏈接數據庫的幾個步調正文
此文列出了JDBC鏈接數據庫的4個步調,供年夜家參考下:
JDBC:JAVA拜訪數據庫的處理計劃。
幾個步調:1.加載驅動類;
2.與數據庫樹立銜接;
3.履行SQL語句
4.處置成果集
5.封閉銜接
1. 第一步:加載驅動類:
須要留意:分歧的數據庫,參照的字符串分歧,ORACLE的銜接為:Class.forName("oracle.jdbc.driver.OracleDriver"); 這一步履行後,法式能夠會拋出: ClassNotFoundException,緣由普通有:
a. 數據庫的驅動jar包沒有導入到情況變量中
b. Class.forName中的字符串拼寫不准確
2. 第二步:經由過程DriverManager與數據庫樹立銜接:
其靜態辦法getConnection用來獲得銜接。平日須要傳入三個參數
參數1:數據庫的地址及端口(分歧數據庫字符串內容不雷同)
oracle的地址:jdbc:oracle:thin:@host:port:sid
參數2:數據庫的用戶名
參數3:數據庫對運用戶名的暗碼
Connection conn = DriverManager.getConnect
("jdbc:oracle:thin:@host:port:oracle","user", "psd");
3.第三步:java.sql.Statement 履行SQL語句並獲得成果
Statement state = conn.createStatement();
String sql="/*這外面是SQL語句*/ ";
Statement針對分歧的SQL語句供給了分歧的履行辦法:
ResultSet executeQuery(String sql)
* 該辦法專門用來履行DQL語句,前往的ResultSet表現查詢出來的成果集
int executeUpdate(String sql)
* 該辦法專門用來履行DML語句,前往的數字表現履行該語句影響了表中若干條數據
boolean execute(String sql)
* 該辦法實際上甚麼語句都可以履行了,然則因為DQL,DML都有專門的辦法履行了,所以該辦法平日用來履行DDL語句
ResultSet rs = state.executeQuery(sql);
輸入查詢成果:while(rs.next())
{ 輸入語句 }
ResultSet供給用於遍歷成果集的辦法:
boolean next()
*該辦法有兩個感化,起首當我們查詢出成果集後rs的指針指向第一條數據之上,所以我們須要先挪用一次next()使其指針挪動到第一條數據上並表現該條數據。
第二個感化是看前往值,若指針向下挪動後,發明沒稀有據了,會前往false,如有則前往true,所以我們只要在該辦法前往true的情形下才獲得以後記載的各個字段對應的值RS還供給了若干個getXXX(String fieldName)辦法:
*這一系列辦法是用來獲得RS表現確當前記載中給定字段對應的值。分歧的字段因為類型分歧須要挪用絕對應的辦法
第4步:封閉銜接,寫在finally塊中
finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
將數據庫的銜接放在一個對象類外面,到達重用的後果
因為拜訪數據庫是常常要用到的操作,所以在工程中,平日編寫一個拜訪數據庫的對象類,爾後一切拜訪數據庫的操作,都從對象類中獲得銜接,完成對象類的兩種方法:
1.直接把數據設置裝備擺設寫在對象類DBUtil中
2.把數據庫設置裝備擺設寫在一個properties屬性文件裡,對象類讀入屬性文件,逐行獲得數據庫參數(普通應用第二種)
若應用第一種辦法,在前期須要修正所應用的數據庫或許說修正host、端口、數據庫銜接名、暗碼等等時,就須要修正源代碼外面的數據,未便於體系的保護,故普通應用第二種辦法數據庫銜接對象類DBUtil.java和銜接池的重要步調:
Properties prop = new Properties();
prop.load(new FileInputStream("config.properties"));
//依據設置裝備擺設項初始化
String driverName = prop.getProperty("driverName");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
//最年夜銜接數
int maxActive = Integer.parseInt(prop.getProperty("maxActive"));
//最年夜期待時光
int maxWait = Integer.parseInt(prop.getProperty("maxWait"));
//初始化銜接池
cp = new BasicDataSource();
//相當與是Class.forName()中的內容
cp.setDriverClassName(driverName);
cp.setUrl(url);
cp.setUsername(username);
cp.setPassword(password);
cp.setMaxActive(maxActive);
cp.setMaxWait(maxWait);
public static Connection getConnection() throws Exception{
return cp.getConnection();
}
以上內容是針對JDBC鏈接數據庫的步調做講授,願望可以或許贊助到年夜家!