日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java 數(shù)據(jù)庫(kù)連接(JDBC)的相關(guān)總結(jié)

瀏覽:46日期:2022-08-15 10:32:59

Java 數(shù)據(jù)庫(kù)連接(Java DataBase Connectivity,縮寫JDBC)是官方(sun公司)定義的一套操作所有關(guān)系型數(shù)據(jù)庫(kù)的規(guī)則(即接口)。各個(gè)數(shù)據(jù)庫(kù)廠商去實(shí)現(xiàn)這套接口,提供數(shù)據(jù)庫(kù)驅(qū)動(dòng)jar包。我們可以使用這套接口(JDBC)編程,真正執(zhí)行的代碼是驅(qū)動(dòng)jar包中的實(shí)現(xiàn)類。

一、JDBC API 概述

JDBC API主要位于JDK中的java.sql包中(之后擴(kuò)展的內(nèi)容位于javax.sql包中),主要包括(下面的接口,需驅(qū)動(dòng)程序提供者來(lái)具體實(shí)現(xiàn)):

DriverManager:負(fù)責(zé)加載各種不同驅(qū)動(dòng)程序(Driver),并根據(jù)不同的請(qǐng)求,向調(diào)用者返回相應(yīng)的數(shù)據(jù)庫(kù)連接(Connection)。 Driver:驅(qū)動(dòng)程序,會(huì)將自身加載到DriverManager中去,并處理相應(yīng)的請(qǐng)求,返回相應(yīng)的數(shù)據(jù)庫(kù)連接(Connection)。 Connection:與數(shù)據(jù)庫(kù)連接,負(fù)責(zé)與進(jìn)行數(shù)據(jù)庫(kù)間通訊,SQL執(zhí)行、事務(wù)處理都是在某個(gè)特定Connection環(huán)境中進(jìn)行的。 Statement:用以執(zhí)行SQL查詢和更新(針對(duì)靜態(tài)SQL語(yǔ)句和單次執(zhí)行)。 PreparedStatement:用以執(zhí)行包含動(dòng)態(tài)參數(shù)的SQL查詢和更新(在服務(wù)器端編譯,允許重復(fù)執(zhí)行以提高效率)。 CallableStatement:用以調(diào)用數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程。 SQLException:代表在數(shù)據(jù)庫(kù)連接的建立和關(guān)閉和SQL語(yǔ)句的執(zhí)行過(guò)程中發(fā)生了例外情況(即錯(cuò)誤)。 二、JDBC 和 數(shù)據(jù)庫(kù)建立連接的過(guò)程2.1、裝載驅(qū)動(dòng)程序

Java 程序和數(shù)據(jù)庫(kù)建立連接,首先需要下載好對(duì)應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序包,并放置在程序的依賴庫(kù)中。程序?qū)⒁蕾噹?kù)中的驅(qū)動(dòng)加載到程序中的方式非常簡(jiǎn)單,使用Class.forName()即可。

假如需要導(dǎo)入的驅(qū)動(dòng)包為 mysql-connector-java-5.1.37-bin.jar,則裝載驅(qū)動(dòng)的方式:Class.forName('com.mysql.jdbc.Driver');在驅(qū)動(dòng)程序的文檔中會(huì)告訴你應(yīng)該使用的類名。在裝載驅(qū)動(dòng)的過(guò)程中,會(huì)執(zhí)行驅(qū)動(dòng)程序中的部分代碼(靜態(tài)代碼塊);實(shí)現(xiàn)驅(qū)動(dòng)與 DriverManager的綁定。

static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException('Can’t register driver!'); } }

注意:mysql5之后的驅(qū)動(dòng)jar包可以省略注冊(cè)驅(qū)動(dòng)(forName)的步驟。Jar包中內(nèi)置包含處理了此過(guò)程。

2.2、獲取數(shù)據(jù)庫(kù)連接

下一步就是用適當(dāng)?shù)尿?qū)動(dòng)程序類與 DBMS 建立一個(gè)連接。下列代碼是一般的做法:

Connection con = DriverManager.getConnection(url,user,password);

方法:static Connection getConnection(String url, String user, String password)說(shuō)明:返回一個(gè)打開的連接,你可以使用此連接創(chuàng)建 JDBC statements 并發(fā)送 SQL 語(yǔ)句到數(shù)據(jù)庫(kù)。參數(shù): * url:指定連接的路徑;如:jdbc:mysql://localhost:3306/db3 * user:用戶名 * password:密碼

如果你裝載的驅(qū)動(dòng)程序識(shí)別了提供給 DriverManager.getConnection 的 JDBC URL ,那個(gè)驅(qū)動(dòng)程序?qū)⒏鶕?jù) JDBC URL 建立一個(gè)到指定 DBMS 的連接。正如名稱所示,DriverManager 類在幕后為你管理建立連接的所有細(xì)節(jié)。除非你是正在寫驅(qū)動(dòng)程序,你可能無(wú)需使用此類的其它任何方法,一般程序員需要在此類中直接使用的唯一方法是 DriverManager.getConnection。

2.2.1、Connection:數(shù)據(jù)庫(kù)連接對(duì)象介紹

Connection 對(duì)象與數(shù)據(jù)庫(kù)連接;負(fù)責(zé)與進(jìn)行數(shù)據(jù)庫(kù)間通訊,SQL執(zhí)行以及事務(wù)處理都是在某個(gè)特定Connection環(huán)境中進(jìn)行的。

產(chǎn)生用以執(zhí)行SQL指令的 Statement、PreparedStatement 對(duì)象。 事務(wù)管理中:setAutoCommit(boolean autoCommit)開啟事務(wù)、commit()提交事務(wù)、rollback()回滾事務(wù)。 2.3、創(chuàng)建 JDBC Statement 對(duì)象

Statement 是執(zhí)行SQL 的對(duì)象;其用于把 SQL 語(yǔ)句發(fā)送到 DBMS。不同的SQL語(yǔ)句使用不同的 Statement 對(duì)象的方法,發(fā)送到 DBMS中。

Statement stmt = con.createStatement();2.4、執(zhí)行SQL 語(yǔ)句 (Statement對(duì)象方法使用)

不同的 SQL 語(yǔ)句需要使用不同的 Statement 對(duì)象方法。

boolean execute(String sql):可以執(zhí)行任意的sql(了解 )。 int executeUpdate(String sql):執(zhí)行DML(insert、update、delete)語(yǔ)句、DDL(create,alter、drop)語(yǔ)句。 ResultSet executeQuery(String sql):執(zhí)行DQL(select)語(yǔ)句

其中 executeUpdate() 方法的返回值為影響的行數(shù);可以通過(guò)這個(gè)影響的行數(shù)判斷DML語(yǔ)句是否執(zhí)行成功 ;返回值>0的則執(zhí)行成功,反之,則失敗。

執(zhí)行DML語(yǔ)句

String sql = 'insert into account values(null,’王五’,3000)';int count = stmt.executeUpdate(sql);//影響的行數(shù)

執(zhí)行DQL語(yǔ)句

ResultSet rs = stmt.executeQuery('SELECT user_name, age FROM student');//如果有數(shù)據(jù),rs.next()返回truewhile(rs.next()){System.out.println(rs.getString('user_name')+' 年齡:'+rs.getInt('age'));}2.4.1、ResultSet 結(jié)果集對(duì)象,封裝查詢結(jié)果

java.sql.ResultSet 接口表示一個(gè)數(shù)據(jù)庫(kù)查詢的結(jié)果集;一個(gè)ResultSet對(duì)象具有一個(gè)游標(biāo)指向當(dāng)前行的結(jié)果集。最初,光標(biāo)被置于第一行之前;調(diào)用 next() 方法將光標(biāo)移動(dòng)到下一行;當(dāng) ResultSet 對(duì)象沒有下一行時(shí),next() 方法返回 false。

一般使用方法:

while(rs.next()){ //獲取數(shù)據(jù) int id = rs.getInt(1); String name = rs.getString('name'); double balance = rs.getDouble(3); System.out.println(id + '---' + name + '---' + balance);}

getXxx(參數(shù)):獲取數(shù)據(jù) * Xxx:代表數(shù)據(jù)類型如:int getInt(),String getString() ... * 參數(shù): 1. int:代表列的編號(hào),從1開始 如: getString(1) 2. String:代表列名稱。 如: getDouble('balance')

2.5、釋放資源

SQL 語(yǔ)句執(zhí)行完成后,需要是否創(chuàng)建的資源對(duì)象。包括連接對(duì)象、Statement對(duì)象和ResultSet 對(duì)象等。

以上就是Java 數(shù)據(jù)庫(kù)連接(JDBC)的相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Java 數(shù)據(jù)庫(kù)連接(JDBC)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费在线小视频| 日本中文字幕一区二区视频 | 国产精品久久久久久久久久妞妞| 亚洲欧美一级| 视频在线观看一区| 爽好多水快深点欧美视频| 日韩专区在线视频| 影音先锋久久精品| 欧美亚洲综合视频| 久久99久久人婷婷精品综合| 精品欧美视频| 成人午夜在线| 91精品推荐| 伊人久久成人| 日韩久久99| 国产精品对白| 一区二区精品伦理...| 亚洲综合电影| 最新亚洲激情| 日韩高清不卡一区| 久久一区亚洲| 91精品国产自产在线观看永久∴| 亚洲成人免费| 亚洲精品美女91| 国产另类在线| 日产午夜精品一线二线三线| 亚洲午夜91| 综合日韩在线| 激情综合五月| 黄色成人精品网站| 久久精品72免费观看| 国产精品国产一区| 成人精品天堂一区二区三区| 亚洲一区二区三区高清| 日韩精品视频在线看| 久久字幕精品一区| 性欧美xxxx免费岛国不卡电影| 久久av在线| 国产欧美啪啪| 亚洲成人va| 少妇高潮一区二区三区99| 久久99久久人婷婷精品综合| 丝袜av一区| 亚洲三级网址| 国产一区二区三区成人欧美日韩在线观看| 99久久亚洲精品蜜臀| 亚洲精品日本| 国产精品videossex久久发布 | 精品久久不卡| 91精品1区| 国产精品久久久久毛片大屁完整版| 最新中文字幕在线播放| 免费中文字幕日韩欧美| 精品视频一二| 天使萌一区二区三区免费观看| 国产精品久久乐| av亚洲免费| 国产精品尤物| 狠狠色狠狠色综合日日tαg| 久久国内精品| 免费国产自久久久久三四区久久| 欧美日韩亚洲三区| 91精品一区国产高清在线gif | 日韩一区二区久久| 国产精品亚洲四区在线观看| 免费视频国产一区| 国产精品密蕾丝视频下载| 欧美一区二区三区高清视频| 国产毛片精品| 九一国产精品| 精品国产乱码久久久| 视频一区视频二区在线观看| 精品美女在线视频| 日韩精品免费视频一区二区三区| 91精品国产福利在线观看麻豆| 国产剧情在线观看一区| 国产精品日韩| 国产精品久久久久蜜臀 | 麻豆一区二区三区| 亚洲图片久久| 久久婷婷一区| 国产精品v亚洲精品v日韩精品| 免费中文字幕日韩欧美| 欧美片第1页| 国产精品va视频| 日韩中文字幕区一区有砖一区 | 日韩av免费大片| 日本天堂一区| 香蕉久久国产| 亚洲午夜在线| 亚洲综合电影| 久久精品二区亚洲w码| 老鸭窝亚洲一区二区三区| 中文字幕在线免费观看视频| 国产伦精品一区二区三区在线播放| 香蕉久久久久久久av网站| 国产 日韩 欧美一区| 老司机精品视频网| 国产精品中文字幕制服诱惑| 亚洲一二av| 天堂成人国产精品一区| 视频一区中文| 欧美不卡视频| 99久精品视频在线观看视频| 日韩中文影院| 日韩大片在线播放| 国语精品一区| 国产精品久久久久77777丨| 日本欧美韩国一区三区| 蜜臀av国产精品久久久久| 红桃视频欧美| 99热免费精品| 欧洲激情综合| 欧美/亚洲一区| 999久久久精品国产| 不卡福利视频| 国产自产自拍视频在线观看 | 国产伦精品一区二区三区视频| 亚洲区第一页| 亚洲免费专区| 中文字幕一区二区三区日韩精品 | 蜜臀久久久久久久| 亚洲综合丁香| 欧美精品黄色| 一区在线免费| 国产精品美女久久久浪潮软件| 欧美特黄a级高清免费大片a级| 久久精品国产68国产精品亚洲| 久久视频一区| 狠狠久久婷婷| 日韩中文字幕区一区有砖一区 | 麻豆中文一区二区| 国产激情久久| 老司机精品在线| 日本蜜桃在线观看视频| 亚洲一级少妇| 婷婷中文字幕一区| 蘑菇福利视频一区播放| 亚洲欧美日本国产 | 视频一区中文字幕精品| 97成人在线| 久久中文在线| 国语精品一区| 91精品久久久久久久久久不卡| 午夜日本精品| 中文字幕视频精品一区二区三区| 日本精品在线播放| 麻豆精品久久| 久久国产精品成人免费观看的软件| 亚洲一本视频| 亚洲精品成a人ⅴ香蕉片| 欧美另类中文字幕| 精品久久福利| 久久国产日本精品| 先锋亚洲精品| 欧美视频久久| 国产一区二区久久久久| 久久蜜桃精品| 亚洲精品字幕| 国产一区二区三区免费在线| 亚洲一级二级| 偷拍亚洲精品| 国产69精品久久| 欧美成人精品三级网站| 爽好多水快深点欧美视频| 国产精品天堂蜜av在线播放| 日韩av在线中文字幕| av不卡在线| 国产日韩亚洲欧美精品| 成人欧美一区二区三区的电影| 亚洲少妇自拍| 国产精品xxx| 亚洲午夜电影| 日韩高清二区| 亚洲精品88| 日本一区二区中文字幕| 日产精品一区二区| 免费人成在线不卡| 你懂的国产精品| 在线成人直播| 国产情侣久久| 不卡在线一区| 国产精品地址| 尤物精品在线| 久久精品免费看| 国产农村妇女精品一区二区| 国产精品久久久久久久免费软件 | 婷婷激情一区| 日韩综合一区二区| 国产欧美一区二区三区精品酒店| 亚洲午夜国产成人| 日韩国产欧美| 日韩在线观看一区二区| 久久天堂影院| 视频一区在线播放| 欧美freesex黑人又粗又大| 日本欧美在线| 合欧美一区二区三区| 国产在视频一区二区三区吞精| 亚洲乱码视频|