




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java通過(guò)JDBC連接數(shù)據(jù)庫(kù)的方法和實(shí)例演示什么是JDBC? 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ǔ)言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠編寫數(shù)據(jù)庫(kù)應(yīng)用程序。 JDBC操作不同的數(shù)據(jù)庫(kù)僅僅是連接方式上的差異而已。這樣,Java編寫的程序就不依賴于具體的數(shù)據(jù)庫(kù)。 在JDBC中,所有的類和接口都保存在java.sql包中。在此包中,規(guī)定了大量的接口 JDBC實(shí)際上是一個(gè)標(biāo)準(zhǔn),數(shù)據(jù)庫(kù)生產(chǎn)商,只要
2、是想支持Java,肯定要符合JDBC規(guī)范什么是JDBC? 在數(shù)據(jù)庫(kù)編程中,以SQL語(yǔ)句作為操作標(biāo)準(zhǔn) 程序經(jīng)常使用JDBC做以下操作: #與一個(gè)數(shù)據(jù)庫(kù)建立連接 #向已連接的數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句 #處理SQL語(yǔ)句返回的結(jié)果連接數(shù)據(jù)庫(kù)的兩種方式 方式一:建立JDBC-ODBC橋接器 方式二:加載純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序程序數(shù)據(jù)庫(kù)JDBC 如果要使用數(shù)據(jù)庫(kù)就要添加數(shù)據(jù)庫(kù)的驅(qū)動(dòng),不同的數(shù)據(jù)庫(kù)有不用的驅(qū)動(dòng),這里就不一一說(shuō)明。 驅(qū)動(dòng)程序是需要單獨(dú)配置的,往往是以一組jar包的形式出現(xiàn); 也就是說(shuō),我們要進(jìn)行相關(guān)的開(kāi)發(fā),就要引入jar包。配置classpath。 添加jar程序驅(qū)動(dòng)包的方法在這里:http:/
3、 在使用JDBC編程時(shí)需要連接數(shù)據(jù)庫(kù),導(dǎo)入JAR包是必須的,導(dǎo)入其它的jar包方法同樣如此,導(dǎo)入的方法是: 打開(kāi)eclipse 1.右擊要導(dǎo)入jar包的項(xiàng)目,點(diǎn)properties 2.左邊選擇java build path,右邊選擇libraries 3.選擇add External jars 4.選擇jar包 確定后就行了。先把先把jar包放在項(xiàng)目的目錄下,包放在項(xiàng)目的目錄下,通過(guò)添加通過(guò)添加jar包,是使用相對(duì)地址的,包,是使用相對(duì)地址的,這樣把項(xiàng)目復(fù)制到其它電腦也可以用這樣把項(xiàng)目復(fù)制到其它電腦也可以用導(dǎo)入外部的導(dǎo)入外部的jar包,是絕對(duì)地址,包,是絕對(duì)地址,如果項(xiàng)目要復(fù)制到其它電腦又要
4、重新導(dǎo)入如果項(xiàng)目要復(fù)制到其它電腦又要重新導(dǎo)入數(shù)據(jù)庫(kù)的操作過(guò)程 打開(kāi)數(shù)據(jù)庫(kù)的服務(wù) 連接數(shù)據(jù)庫(kù),一般需要用戶名,密碼 操作數(shù)據(jù)庫(kù):創(chuàng)建表,查詢表,增刪改等操作 關(guān)閉數(shù)據(jù)庫(kù)JDBC的主要操作類及接口 java.sql.DriverManager 描述:用于管理JDBC驅(qū)動(dòng)程序 是一個(gè)最常用的類,使用它可以獲得一個(gè)數(shù)據(jù)庫(kù)的連接public static Connection getConnection(String url)throws SQLExceptionpublic static Connection getConnection(String url,String user,String pa
5、ssword)throws SQLException java.sql.Connection 描述:用于建立與特定數(shù)據(jù)庫(kù)的連接,一個(gè)連接就是一個(gè)會(huì)話,建立連接之后便可以執(zhí)行SQL語(yǔ)句和獲得檢索結(jié)果 每一個(gè)Connection的實(shí)例化對(duì)象都表示一個(gè)數(shù)據(jù)庫(kù)的連接JDBC的主要操作類及接口 java.sql.Statement 描述:一個(gè)Statement對(duì)象用于執(zhí)行靜態(tài)SQL語(yǔ)句,并獲得語(yǔ)句執(zhí)行之后產(chǎn)生的結(jié)果 用在數(shù)據(jù)庫(kù)的操作中 java.sql.PreparedStatement 描述:創(chuàng)建一個(gè)可以編譯的SQL語(yǔ)句對(duì)象,該對(duì)象可以被多次運(yùn)行,以提高執(zhí)行的效率。該接口是Statement接口的子接
6、口 用在數(shù)據(jù)庫(kù)的操作中 java.sql.CallableStatement 描述:用于執(zhí)行SQL存儲(chǔ)過(guò)程JDBC的主要操作類及接口 java.sql.ResultSet 描述:用于創(chuàng)建表示SQL語(yǔ)句檢索結(jié)果的結(jié)果集。用戶通過(guò)結(jié)果集完成對(duì)數(shù)據(jù)庫(kù)的訪問(wèn) java.sql.Date 描述:是java.util.Date的一個(gè)子集,用于表示與SQLDATE相同的日期類型。不包括時(shí)間。 java.sql.TimeStemp 用于表示SQL時(shí)間戳,并增加了一個(gè)能表示納秒的時(shí)間域例子 import java.sql.DriverManager; import java.sql.ResultSet; imp
7、ort java.sql.SQLException; import java.sql.Connection; import java.sql.Statement;public class MysqlDemo public static void main(String args) throws Exception Connection conn = null; String sql;/ MySQL的JDBC URL編寫方式:jdbc:mysql:/主機(jī)名稱:連接端口/數(shù)據(jù)庫(kù)的名稱?參數(shù)=值/ 避免中文亂碼要指定useUnicode和characterEncoding/ 執(zhí)行數(shù)據(jù)庫(kù)操作之前要在數(shù)
8、據(jù)庫(kù)管理系統(tǒng)上創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),名字自己定,/ 下面語(yǔ)句之前就要先創(chuàng)建javademo數(shù)據(jù)庫(kù) String url = jdbc:mysql:/localhost:3306/javademo? + user=root&password=root&useUnicode=true&characterEncoding=UTF8; try / 之所以要使用下面這條語(yǔ)句,是因?yàn)橐褂肕ySQL的驅(qū)動(dòng),所以我們要把它驅(qū)動(dòng)起來(lái),/ 可以通過(guò)Class.forName把它加載進(jìn)去,也可以通過(guò)初始化來(lái)驅(qū)動(dòng)起來(lái),下面三種形式都可以 Class.forName(com.mysql.jdbc.D
9、river);/ 動(dòng)態(tài)加載mysql驅(qū)動(dòng)/ or:/ com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();/ or:/ new com.mysql.jdbc.Driver(); System.out.println(成功加載MySQL驅(qū)動(dòng)程序);/ 一個(gè)Connection代表一個(gè)數(shù)據(jù)庫(kù)連接 conn = DriverManager.getConnection(url);/ Statement里面帶有很多方法,比如executeUpdate可以實(shí)現(xiàn)插入,更新和刪除等 Statement stmt = conn.createSta
10、tement(); sql = create table student(NO char(20),name varchar(20),primary key(NO); int result = stmt.executeUpdate(sql); / executeUpdate語(yǔ)句會(huì)返回一個(gè)受影響的行數(shù),如果返回-1就沒(méi)有成功 if (result != -1) System.out.println(創(chuàng)建數(shù)據(jù)表成功); sql = insert into student(NO,name) values(2012001,陶偉基); result = stmt.executeUpdate(sql); s
11、ql = insert into student(NO,name) values(2012002,周小俊); result = stmt.executeUpdate(sql); sql = select * from student; ResultSet rs = stmt.executeQuery(sql);/ executeQuery會(huì)返回結(jié)果的集合,否則返回空值 System.out.println(學(xué)號(hào)t姓名); while (rs.next() System.out .println(rs.getString(1) + t + rs.getString(2);/ 入如果返回的是int類型可以用get
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商品銷售管理系統(tǒng)-畢業(yè)論文
- 2025年度限價(jià)房購(gòu)房定金協(xié)議書(shū)
- 個(gè)人股權(quán)轉(zhuǎn)讓合同2025年度附條件支付及解禁安排
- 二零二五年度精密模具委托加工與技術(shù)創(chuàng)新合同
- 2025年度砸墻工程安全責(zé)任保險(xiǎn)協(xié)議合同
- 二零二五年度房地產(chǎn)投資并購(gòu)合同協(xié)議
- 二零二五年度影視作品宣傳推廣合同
- 2025年度火鍋店合伙人投資分紅及退出機(jī)制協(xié)議
- 2025年度現(xiàn)代農(nóng)業(yè)科技入股協(xié)議書(shū)
- 2025年度法人和股東免責(zé)責(zé)任釋放約定書(shū)
- (正式版)JTT 421-2024 港口固定式起重機(jī)安全要求
- 地連墻施工MJS工法樁施工方案
- 《電力建設(shè)施工技術(shù)規(guī)范 第2部分:鍋爐機(jī)組》DLT 5190.2
- 教案設(shè)計(jì)常見(jiàn)問(wèn)題及解決措施
- (正式版)JBT 14682-2024 多關(guān)節(jié)機(jī)器人用伺服電動(dòng)機(jī)技術(shù)規(guī)范
- 《寧向東的清華管理學(xué)課》學(xué)習(xí)筆記
- 信訪維穩(wěn)工作培訓(xùn)
- 品牌社群視角下顧客參與價(jià)值共創(chuàng)的影響研究-基于小米社群運(yùn)營(yíng)案例分析
- 《銀行保險(xiǎn)理財(cái)沙龍》課件
- 像科學(xué)家一樣思考-怎么做-怎么教-
- 酒店公共區(qū)域清潔培訓(xùn)
評(píng)論
0/150
提交評(píng)論