讓JAVA翱翔天地之間
來客請點評下,互相交流學習經(jīng)驗,大家互相幫助 .
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
posts - 36, comments - 3, trackbacks - 0
完整java開發(fā)中JDBC連接數(shù)據(jù)庫代碼和步驟[轉(zhuǎn)]
JDBC連接數(shù)據(jù)庫
•創(chuàng)建一個以JDBC連接數(shù)據(jù)庫的程序,包含
7
個步驟:
1
、加載JDBC驅(qū)動程序:
在連接數(shù)據(jù)庫之前,首先要加載想要連接的數(shù)據(jù)庫的驅(qū)動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態(tài)方法forName(String className)實現(xiàn)。
例如:
try
{
//加載MySql的驅(qū)動類
Class.forName(
"com.mysql.jdbc.Driver"
) ;
}
catch
(ClassNotFoundException e){
System.out.println(
"找不到驅(qū)動程序類 ,加載驅(qū)動失敗!"
);
e.printStackTrace() ;
}
成功加載后,會將Driver類的實例注冊到DriverManager類中。
2
、提供JDBC連接的URL
•連接URL定義了連接數(shù)據(jù)庫時的協(xié)議、子協(xié)議、數(shù)據(jù)源標識。
•書寫形式:協(xié)議:子協(xié)議:數(shù)據(jù)源標識
協(xié)議:在JDBC中總是以jdbc開始
子協(xié)議:是橋連接的驅(qū)動程序或是數(shù)據(jù)庫管理系統(tǒng)名稱。
數(shù)據(jù)源標識:標記找到數(shù)據(jù)庫來源的地址與連接端口。
例如:(MySql的連接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=
true
:表示使用Unicode字符集。如果characterEncoding設(shè)置為
gb2312或GBK,本參數(shù)必須設(shè)置為
true
。characterEncoding=gbk:字符編碼方式。
3
、創(chuàng)建數(shù)據(jù)庫的連接
•要連接數(shù)據(jù)庫,需要向java.sql.DriverManager請求并獲得Connection對象,
該對象就代表一個數(shù)據(jù)庫的連接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法傳入指定的欲連接的數(shù)據(jù)庫的路徑、數(shù)據(jù)庫的用戶名和
密碼來獲得。
例如:
//連接MySql數(shù)據(jù)庫,用戶名和密碼都是root
String url =
"jdbc:mysql://localhost:3306/test"
;
String username =
"root"
;
String password =
"root"
;
try
{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}
catch
(SQLException se){
System.out.println(
"數(shù)據(jù)庫連接失敗!"
);
se.printStackTrace() ;
}
4
、創(chuàng)建一個Statement
•要執(zhí)行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下
3
種類型:
1
、執(zhí)行靜態(tài)SQL語句。通常通過Statement實例實現(xiàn)。
2
、執(zhí)行動態(tài)SQL語句。通常通過PreparedStatement實例實現(xiàn)。
3
、執(zhí)行數(shù)據(jù)庫存儲過程。通常通過CallableStatement實例實現(xiàn)。
具體的實現(xiàn)方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall(
"{CALL demoSp(? , ?)}"
) ;
5
、執(zhí)行SQL語句
Statement接口提供了三種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate
和execute
1
、ResultSet executeQuery(String sqlString):執(zhí)行查詢數(shù)據(jù)庫的SQL語句
,返回一個結(jié)果集(ResultSet)對象。
2
、
int
executeUpdate(String sqlString):用于執(zhí)行INSERT、UPDATE或
DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3
、execute(sqlString):用于執(zhí)行返回多個結(jié)果集、多個更新計數(shù)或二者組合的
語句。
具體實現(xiàn)的代碼:
ResultSet rs = stmt.executeQuery(
"SELECT * FROM ..."
) ;
int
rows = stmt.executeUpdate(
"INSERT INTO ..."
) ;
boolean
flag = stmt.execute(String sql) ;
6
、處理結(jié)果
兩種情況:
1
、執(zhí)行更新返回的是本次操作影響到的記錄數(shù)。
2
、執(zhí)行查詢返回的結(jié)果是一個ResultSet對象。
• ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對這些
行中數(shù)據(jù)的訪問。
• 使用結(jié)果集(ResultSet)對象的訪問方法獲取數(shù)據(jù):
while
(rs.next()){
String name = rs.getString(
"name"
) ;
String pass = rs.getString(
1
) ;
// 此方法比較高效
}
(列是從左到右編號的,并且從列
1
開始)
7
、關(guān)閉JDBC對象
操作完成以后要把所有使用的JDBC對象全都關(guān)閉,以釋放JDBC資源,關(guān)閉順序和聲
明順序相反:
1
、關(guān)閉記錄集
2
、關(guān)閉聲明
3
、關(guān)閉連接對象
if
(rs !=
null
){
// 關(guān)閉記錄集
try
{
rs.close() ;
}
catch
(SQLException e){
e.printStackTrace() ;
}
}
if
(stmt !=
null
){
// 關(guān)閉聲明
try
{
stmt.close() ;
}
catch
(SQLException e){
e.printStackTrace() ;
}
}
if
(conn !=
null
){
// 關(guān)閉連接對象
try
{
conn.close() ;
}
catch
(SQLException e){
e.printStackTrace() ;
}
}
原文網(wǎng)址:
http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html
posted on 2013-09-08 13:56
天YU地___PS,代碼人生
閱讀(162)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Copyright ©2025 天YU地___PS,代碼人生 Powered By:
博客園
模板提供:
滬江博客
<
2013年9月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
一定要好好學習,天天向上!
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
(8)
acm(4)
軟件工程(4)
隨筆檔案
(35)
2014年4月 (3)
2014年1月 (5)
2013年9月 (2)
2013年6月 (1)
2013年5月 (3)
2013年4月 (1)
2013年3月 (1)
2013年2月 (2)
2013年1月 (2)
2012年7月 (14)
2012年6月 (1)
文章分類
算法資料筆記
文章檔案
(1)
2012年7月 (1)
搜索
最新評論
1.?re: hud A == B ?
評論內(nèi)容較長,點擊標題查看
--opo
2.?re: FIRE NET
不得不說,這個方法是錯的
--abcde
3.?re: 軟件開發(fā)流程
呵呵,還可以
--紅淚
閱讀排行榜
1.?簡述建立對象模型的步驟(1489)
2.?Doing homework again(好久沒A題了,一題做了好久。)(852)
3.?動態(tài)規(guī)劃---矩陣連乘問題(687)
4.?簡單的jsp添加頁面(599)
5.?今年暑假不AC(597)
評論排行榜
1.?FIRE NET(1)
2.?hud A == B ?(1)
3.?軟件開發(fā)流程(1)
4.?Doing homework again(好久沒A題了,一題做了好久。)(0)
5.?Doing homework(0)
主站蜘蛛池模板:
精品免费久久久久久成人影院
|
四虎影视在线永久免费观看
|
亚洲中文字幕精品久久
|
欧美在线看片A免费观看
|
国产AV日韩A∨亚洲AV电影
|
在线A亚洲老鸭窝天堂
|
精品无码免费专区毛片
|
亚洲av纯肉无码精品动漫
|
亚洲精品无码mv在线观看网站
|
a级毛片毛片免费观看久潮喷
|
91精品国产亚洲爽啪在线观看
|
免费无码又爽又刺激高潮的视频
|
一区二区视频在线免费观看
|
91大神亚洲影视在线
|
亚洲不卡无码av中文字幕
|
无码精品人妻一区二区三区免费看
|
亚洲暴爽av人人爽日日碰
|
亚洲女久久久噜噜噜熟女
|
好吊妞视频免费视频
|
久久国产免费一区二区三区
|
无码色偷偷亚洲国内自拍
|
亚洲网站免费观看
|
相泽亚洲一区中文字幕
|
永久免费的网站在线观看
|
成人精品视频99在线观看免费
|
亚洲色大成WWW亚洲女子
|
亚洲国产精品高清久久久
|
国产又黄又爽又猛的免费视频播放
|
99re免费99re在线视频手机版
|
边摸边脱吃奶边高潮视频免费
|
亚洲欧洲久久精品
|
亚洲午夜av影院
|
欧美在线看片A免费观看
|
亚洲视频在线免费观看
|
一级毛片免费一级直接观看
|
亚洲成在人线在线播放无码
|
久久亚洲国产精品一区二区
|
国产免费观看黄AV片
|
亚洲av永久无码制服河南实里
|
国产最新凸凹视频免费
|
日韩欧毛片免费视频
|