最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年07月21日 12:03:51   投稿:mrr  
這篇文章主要介紹了JDBC鏈接數(shù)據(jù)庫的幾個步驟,通過將數(shù)據(jù)庫的連接放在一個工具類里面,達(dá)到重用的效果,需要的朋友可以參考下

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

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

幾個步驟:1.加載驅(qū)動類;

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

             3.執(zhí)行SQL語句

       4.處理結(jié)果集

       5.關(guān)閉連接

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

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

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

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

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

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

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

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

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

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

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

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

Statement state = conn.createStatement();

String sql="/*這里面是SQL語句*/  ";

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

ResultSet executeQuery(String sql)

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

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

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

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

boolean next()

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

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

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

finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

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

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

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

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

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

Properties prop = new Properties();
prop.load(new FileInputStream("config.properties"));
//根據(jù)配置項初始化
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"));
//最大等待時間
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)容是針對JDBC鏈接數(shù)據(jù)庫的步驟做講解,希望能夠幫助到大家!

相關(guān)文章

  • SpringCloud筆記(Hoxton)Netflix之Ribbon負(fù)載均衡示例代碼

    SpringCloud筆記(Hoxton)Netflix之Ribbon負(fù)載均衡示例代碼

    這篇文章主要介紹了SpringCloud筆記HoxtonNetflix之Ribbon負(fù)載均衡,Ribbon是管理HTTP和TCP服務(wù)客戶端的負(fù)載均衡器,Ribbon具有一系列帶有名稱的客戶端(Named?Client),對SpringCloud?Ribbon負(fù)載均衡相關(guān)知識感興趣的朋友一起看看吧
    2022-06-06
  • 如何替換@PathVariable中的變量

    如何替換@PathVariable中的變量

    這篇文章主要介紹了如何替換@PathVariable中的變量,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java去掉文本中多余的空格與空行實例代碼

    java去掉文本中多余的空格與空行實例代碼

    在最近的一個項目中發(fā)現(xiàn)用戶提交的數(shù)據(jù)中多了很多多余的空格與空行,為了不影響使用,只能想辦法去掉了,下面這篇文章主要給大家介紹了關(guān)于java去掉文本中多余的空格與空行的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • java多線程編程之管道通信詳解

    java多線程編程之管道通信詳解

    這篇文章主要為大家詳細(xì)介紹了java多線程編程之線程間的通信,探討使用管道進行通信,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 基于idea把springboot項目部署到docker

    基于idea把springboot項目部署到docker

    這篇文章主要介紹了基于idea把springboot項目部署到docker,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java中死鎖的原理實戰(zhàn)分析

    Java中死鎖的原理實戰(zhàn)分析

    這篇文章主要介紹了Java中死鎖的原理,結(jié)合具體案例形式分析了java死鎖形成的相關(guān)原理,需要的朋友可以參考下
    2019-08-08
  • ArrayList的自動擴充機制實例解析

    ArrayList的自動擴充機制實例解析

    本文主要介紹了ArrayList的自動擴充機制,由一個題目切入主題,逐步向大家展示了ArrayList的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Java?Socket實現(xiàn)聊天室功能

    Java?Socket實現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了Java?Socket實現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Springboot中路徑參數(shù)帶 (%2F)的問題徹底解決方案

    Springboot中路徑參數(shù)帶 (%2F)的問題徹底解決方案

    這篇文章主要介紹了徹底解決Springboot中路徑參數(shù)帶(%2F)的問題,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Java空格替換逗號的實現(xiàn)示例

    Java空格替換逗號的實現(xiàn)示例

    在編程中,我們經(jīng)常需要對字符串進行各種處理,其中一個常見的需求是將字符串中的逗號替換為空格,本文主要介紹了Java空格替換逗號的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論

安塞县| 五台县| 镇宁| 河池市| 丰都县| 柯坪县| 泗阳县| 郸城县| 合阳县| 江华| 太原市| 磐安县| 建湖县| 太和县| 长沙县| 土默特左旗| 定南县| 长丰县| 饶阳县| 邢台县| 珠海市| 泽州县| 龙州县| 晋中市| 安仁县| 交城县| 子洲县| 石首市| 巩留县| 芜湖县| 拉萨市| 南靖县| 成安县| 奉化市| 溆浦县| 梁河县| 房山区| 墨脱县| 瓦房店市| 道真| 涡阳县|