java中sql语句怎么把开始和结束时间作为参数写sql查询_JDBC数据库连接怎么操作?...
之前一直聽(tīng)說(shuō)過(guò)JDBC,但從來(lái)不知道它是何物的小伙伴們看過(guò)來(lái)啦!
一、概述
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成,是Java訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)規(guī)范。
我們安裝好數(shù)據(jù)庫(kù)之后,我們的應(yīng)用程序也是不能直接使用數(shù)據(jù)庫(kù)的,必須要通過(guò)相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,通過(guò)驅(qū)動(dòng)程序去和數(shù)據(jù)庫(kù)打交道。驅(qū)動(dòng)是兩個(gè)設(shè)備要進(jìn)行通信,滿(mǎn)足一定通信數(shù)據(jù)格式,數(shù)據(jù)格式由設(shè)備提供商規(guī)定,設(shè)備提供商為設(shè)備提供驅(qū)動(dòng)軟件,通過(guò)軟件可以與該設(shè)備進(jìn)行通信。
有了JDBC,程序員只需用JDBC API寫(xiě)一個(gè)程序,就可以訪問(wèn)所有數(shù)據(jù)庫(kù)。將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫(xiě)不同的應(yīng)用程序,只須寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語(yǔ)言“編寫(xiě)一次,處處運(yùn)行”的優(yōu)勢(shì)。
JDBCAPI提供者是sun公司,供程序員調(diào)用的接口與類(lèi),集成在java.sql和javax.sql包中,可以管理各種不同的JDBC驅(qū)動(dòng),如:
1. DriverManager類(lèi):Driver接口由數(shù)據(jù)庫(kù)廠家提供,作為java開(kāi)發(fā)人員,只需要使用Driver接口就可以了。
2. Connection接口:Connection與特定數(shù)據(jù)庫(kù)的連接(會(huì)話(huà)),在連接上下文中執(zhí)行sql語(yǔ)句并返回結(jié)果。
3.Statement接口:用于執(zhí)行靜態(tài)SQL語(yǔ)句并返回它所生成結(jié)果的對(duì)象。
4.ResultSet接口:ResultSet提供檢索不同類(lèi)型字段的方法。
JDBC驅(qū)動(dòng)的提供者是數(shù)據(jù)庫(kù)廠商,負(fù)責(zé)連接各種不同的數(shù)據(jù)庫(kù)。
JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。
那么JDBCAPI、JDBC驅(qū)動(dòng)和JDBC三者有什么關(guān)系呢?
SUN公司是規(guī)范制定者,制定了規(guī)范JDBC(連接數(shù)據(jù)庫(kù)規(guī)范);數(shù)據(jù)庫(kù)廠商微軟、甲骨文等分別提供實(shí)現(xiàn)JDBC接口的驅(qū)動(dòng)jar包;程序員學(xué)習(xí)JDBC規(guī)范來(lái)應(yīng)用這些jar包里的類(lèi)。
JDBC訪問(wèn)數(shù)據(jù)庫(kù)步驟:1.加載一個(gè)Driver驅(qū)動(dòng);2.創(chuàng)建數(shù)據(jù)庫(kù)連接(Connection);3.創(chuàng)建SQL命令發(fā)送器Statement;4.通過(guò)Statement發(fā)送SQL命令并得到結(jié)果;5.處理結(jié)果(select語(yǔ)句);6.關(guān)閉數(shù)據(jù)庫(kù)資源
二、JDBC語(yǔ)法總結(jié)
1. 加載驅(qū)動(dòng)
2. 創(chuàng)建數(shù)據(jù)庫(kù)連接
3. 創(chuàng)建Statement并發(fā)送命令
4. 處理ResultSet結(jié)果
5. 關(guān)閉數(shù)據(jù)庫(kù)資源
三、使用PreparedSatement完善JDBC操作
如果需要多次執(zhí)行一個(gè)SQL語(yǔ)句,可以使用PreparedStatement對(duì)象。在創(chuàng)建 PreparedStatement對(duì)象時(shí),通過(guò)傳遞不同參數(shù)值多次執(zhí)行PreparedStatement對(duì)象,可 以得到多個(gè)不同的結(jié)果。優(yōu)勢(shì):執(zhí)行效率高、代碼可讀性強(qiáng)、安全性高。
四、手動(dòng)啟動(dòng)事務(wù)管理
在JDBC中,事務(wù)操作缺省是自動(dòng)提交。一條對(duì)數(shù)據(jù)庫(kù)的更新表達(dá)式代表一項(xiàng)事務(wù)操作,操作成功后,系統(tǒng)將自動(dòng)調(diào)用commit()提交,否則調(diào)用rollback()回滾。
在JDBC中,事務(wù)操作方法都位于接口java.sql.Connection中,可以通過(guò)調(diào)用setAutoCommit(false)來(lái)禁止自動(dòng)提交。之后就可以把多個(gè)數(shù)據(jù)庫(kù)操作的表達(dá)式作為一個(gè)事務(wù),在操作完成后調(diào)用commit()來(lái)進(jìn)行整體提交,倘若其中一個(gè)表達(dá)式操作失敗,都不會(huì)執(zhí)行到commit(),并且將產(chǎn)生響應(yīng)的異常;此時(shí)就可以在異常捕獲時(shí)調(diào)用rollback()進(jìn)行回滾,回復(fù)至數(shù)據(jù)初始狀態(tài)。
事務(wù)結(jié)束的邊界是commit或者rollback方法的調(diào)用。事務(wù)開(kāi)始的邊界則不是那么明顯了,它會(huì)開(kāi)始于組成當(dāng)前事務(wù)的所有statement中的第一個(gè)被執(zhí)行的時(shí)候。
五、采用分層實(shí)現(xiàn)JDBC案例
完成對(duì)雇員數(shù)據(jù)的多種操作
? 查詢(xún)所有雇員
? 按照編號(hào)查詢(xún)雇員
? 添加雇員
? 刪除雇員
? 具體實(shí)現(xiàn)
? 定義包結(jié)構(gòu)
? 定義實(shí)體類(lèi)Employee
? 定義EmployeeDao接口
? 定義EmployeeDaoImpl
? 抽取BaseDao ? 測(cè)試
總結(jié)
以上是生活随笔為你收集整理的java中sql语句怎么把开始和结束时间作为参数写sql查询_JDBC数据库连接怎么操作?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux下文件的压缩和解压
- 下一篇: 江苏计算机一级怎么自学,江苏计算机一级自