一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - JDBC鏈接數(shù)據(jù)庫(kù)的幾個(gè)步驟

JDBC鏈接數(shù)據(jù)庫(kù)的幾個(gè)步驟

2019-12-27 13:02mrr JAVA教程

這篇文章主要介紹了JDBC鏈接數(shù)據(jù)庫(kù)的幾個(gè)步驟,通過(guò)將數(shù)據(jù)庫(kù)的連接放在一個(gè)工具類里面,達(dá)到重用的效果,需要的朋友可以參考下

此文列出了JDBC鏈接數(shù)據(jù)庫(kù)的4個(gè)步驟,供大家參考下:

JDBC:JAVA訪問(wèn)數(shù)據(jù)庫(kù)的解決方案。

幾個(gè)步驟:1.加載驅(qū)動(dòng)類;

     2.與數(shù)據(jù)庫(kù)建立連接;

             3.執(zhí)行SQL語(yǔ)句

       4.處理結(jié)果集

       5.關(guān)閉連接

1. 第一步:加載驅(qū)動(dòng)類:

  需要注意:不同的數(shù)據(jù)庫(kù),參照的字符串不同,ORACLE的連接為:Class.forName("oracle.jdbc.driver.OracleDriver"); 這一步執(zhí)行后,程序可能會(huì)拋出: ClassNotFoundException,原因一般有:

a. 數(shù)據(jù)庫(kù)的驅(qū)動(dòng)jar包沒(méi)有導(dǎo)入到環(huán)境變量中

b. Class.forName中的字符串拼寫不正確

2. 第二步:通過(guò)DriverManager與數(shù)據(jù)庫(kù)建立連接:

其靜態(tài)方法getConnection用來(lái)獲取連接。通常需要傳入三個(gè)參數(shù)

參數(shù)1:數(shù)據(jù)庫(kù)的地址及端口(不同數(shù)據(jù)庫(kù)字符串內(nèi)容不相同)

oracle的地址:jdbc:oracle:thin:@host:port:sid

參數(shù)2:數(shù)據(jù)庫(kù)的用戶名

參數(shù)3:數(shù)據(jù)庫(kù)對(duì)應(yīng)用戶名的密碼

Connection conn = DriverManager.getConnect
("jdbc:oracle:thin:@host:port:oracle","user", "psd");

3.第三步:java.sql.Statement 執(zhí)行SQL語(yǔ)句并獲取結(jié)果

Statement state = conn.createStatement();

String sql="/*這里面是SQL語(yǔ)句*/  ";

Statement針對(duì)不同的SQL語(yǔ)句提供了不同的執(zhí)行方法:

ResultSet executeQuery(String sql)

  * 該方法專門用來(lái)執(zhí)行DQL語(yǔ)句,返回的ResultSet表示查詢出來(lái)的結(jié)果集

int executeUpdate(String sql)
  * 該方法專門用來(lái)執(zhí)行DML語(yǔ)句,返回的數(shù)字表示執(zhí)行該語(yǔ)句影響了表中多少條數(shù)據(jù)

boolean execute(String sql)
  * 該方法理論上什么語(yǔ)句都可以執(zhí)行了,但是由于DQL,DML都有專門的方法執(zhí)行了,所以該方法通常用來(lái)執(zhí)行DDL語(yǔ)句

ResultSet rs = state.executeQuery(sql);
輸出查詢結(jié)果:while(rs.next())
        {  輸出語(yǔ)句  }
ResultSet提供用于遍歷結(jié)果集的方法:

boolean next()

  *該方法有兩個(gè)作用,首先當(dāng)我們查詢出結(jié)果集后rs的指針指向第一條數(shù)據(jù)之上,所以我們需要先調(diào)用一次next()使其指針移動(dòng)到第一條數(shù)據(jù)上并表示該條數(shù)據(jù)。 
第二個(gè)作用是看返回值,若指針向下移動(dòng)后,發(fā)現(xiàn)沒(méi)有數(shù)據(jù)了,會(huì)返回false,若有則返回true,所以我們只有在該方法返回true的情況下才獲取當(dāng)前記錄的各個(gè)字段對(duì)應(yīng)的值RS還提供了若干個(gè)getXXX(String fieldName)方法:

  *這一系列方法是用來(lái)獲取RS表示的當(dāng)前記錄中給定字段對(duì)應(yīng)的值。不同的字段由于類型不同需要調(diào)用相對(duì)應(yīng)的方法

第4步:關(guān)閉連接,寫在finally塊中

?
1
2
3
4
5
6
7
8
9
finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

將數(shù)據(jù)庫(kù)的連接放在一個(gè)工具類里面,達(dá)到重用的效果

由于訪問(wèn)數(shù)據(jù)庫(kù)是經(jīng)常要用到的操作,所以在工程中,通常編寫一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的工具類,此后所有訪問(wèn)數(shù)據(jù)庫(kù)的操作,都從工具類中獲取連接,實(shí)現(xiàn)工具類的兩種方式:

1.直接把數(shù)據(jù)配置寫在工具類DBUtil中

2.把數(shù)據(jù)庫(kù)配置寫在一個(gè)properties屬性文件里,工具類讀入屬性文件,逐行獲取數(shù)據(jù)庫(kù)參數(shù)(一般使用第二種)

若使用第一種方法,在后期需要修改所使用的數(shù)據(jù)庫(kù)或者說(shuō)修改host、端口、數(shù)據(jù)庫(kù)連接名、密碼等等時(shí),就需要修改源代碼里面的數(shù)據(jù),不便于系統(tǒng)的維護(hù),故一般使用第二種方法數(shù)據(jù)庫(kù)連接工具類DBUtil.java以及連接池的主要步驟:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Properties prop = new Properties();
prop.load(new FileInputStream("config.properties"));
//根據(jù)配置項(xiàng)初始化
String driverName = prop.getProperty("driverName");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
//最大連接數(shù)
int maxActive = Integer.parseInt(prop.getProperty("maxActive"));
//最大等待時(shí)間
int maxWait = Integer.parseInt(prop.getProperty("maxWait"));
//初始化連接池
cp = new BasicDataSource();
//相當(dāng)與是Class.forName()中的內(nèi)容
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();
}
以上內(nèi)容是針對(duì)JDBC鏈接數(shù)據(jù)庫(kù)的步驟做講解,希望能夠幫助到大家!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美专区在线播放 | 日本高清不卡一区久久精品 | 91传媒制片厂制作传媒破解版 | 91在线 在线播放 | 国产乱人乱精一区二区视频密 | 四虎精品视频在线永久免费观看 | 午夜私人影院在线观看 | 无遮挡h肉动漫在线观看电车 | 青草悠悠视频在线观看 | 大胆国模一区二区三区伊人 | 国模娜娜一区二区三区 | 拍拍叫痛的无挡视频免费 | 亚洲 激情 | 亚洲日本中文字幕天天更新 | 日韩理论在线观看 | 天天天天天干 | 共妻高h | 亚洲国产精品嫩草影院永久 | 1377大但人文艺术包子铺 | 亚洲男人天堂影院 | 日本丰满大乳乳奶 | 500第一精品 | 人生路不在线观看完整版 | 欧美又黄又激烈真实床戏 | 国产里番 | 久见久热 这里只有精品 | 国产日韩高清一区二区三区 | 啊啊啊好大在线观看 | 无码国产成人777爽死在线观看 | 精品综合一区二区三区 | 黑人巨大vs北条麻妃在线 | 欧美人伦禁忌.5 | 俄罗斯图书馆无打码久久 | 久久综合久综合久久鬼色 | 国产图片综合区 | 99久久国产综合精品1尤物 | 亚洲欧美国产在线 | 农村老少伦小说 | 亚洲国产成人久久精品hezyo | 师尊被各种play打屁股 | 免费看黄色片的网站 |