MySQL為例講解JDBC數(shù)據(jù)庫連接步驟
1、什么是JDBC?有什么作用?
Java Data Base Connectivity Java數(shù)據(jù)庫連接協(xié)議
是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問。
他提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序
有了JDBC, 向各種關(guān)系數(shù)據(jù)發(fā)送sql語句就變得很容易了
換句話說就是有了JDBC API就不用為了訪問Oracle數(shù)據(jù)庫專門寫一個程序
或者又為訪問MySQL數(shù)據(jù)庫專門寫一個程序。
2、Java APP使用JDBC連接數(shù)據(jù)庫并處理數(shù)據(jù)有哪些操作步驟?
將驅(qū)動包所在路徑添加到CLASSPATH類路徑變量中
(如:將mysql-connector-java-5.1.5-bin.jar復(fù)制到D:\javasoft下,然后把“D:/javasoft/mysql-connector-java-5.1.5-bin.jar”增加到CLASSPATH變量值中)
步驟:
1)加載Driver驅(qū)動
2)創(chuàng)建數(shù)據(jù)庫連接對象Connection
3)創(chuàng)建一個可向數(shù)據(jù)庫發(fā)送SQL命令并返回結(jié)果的傳送對象Statement
4)執(zhí)行SQL命令并處理返回結(jié)果
5)處理后,如果有返回結(jié)果集,關(guān)閉結(jié)果集對象ResultSet
6)關(guān)閉對應(yīng)的 Statement 對象
7)關(guān)閉連接對象Connection
3、案例分析1
//1、加載驅(qū)動 com.mysql.jdbc.Driver是驅(qū)動類的路徑 Class.forName("com.mysql.jdbc.Driver"); //2、創(chuàng)建數(shù)據(jù)庫連接對象 Connection conn = null ; Statement stmt = null ; ResultSet rs = null ; String url = "jdbc:mysql://localhost:3306/test" ; //localhost表示本機 3306為默認端口 test為數(shù)據(jù)庫名稱 String username = "root" ; //定義連接數(shù)據(jù)庫的用戶名和密碼 String password = "root" ; conn = DriverManager.getConnection(url,username,password);
executeQuery()用于執(zhí)行查詢語句,返回的是結(jié)果集,實際上就是一個滿足查詢條件的一個表
rs結(jié)果集通過指針來指定當前是哪一條數(shù)據(jù)
調(diào)用next方法,指針會指向下一條數(shù)據(jù),如果有數(shù)據(jù),會返回true
//5、處理結(jié)果集 while(rs.next()){ println(rs.getString("username")); pringln(rs.getInt("password")); }
這里沒有聲明拋出異常,需要放在try catch 的try里面,或者拋出也行,如果放在try里面,要把catchSQLException...
finally要將conn stmt rs 都close 因為這些都是JVM的外部資源,和IO一樣都要手動關(guān)閉,它不在JVM的管理范圍內(nèi)
4、案例分析2(增刪改)
增加、修改、刪除都屬于數(shù)據(jù)操作,與數(shù)據(jù)查詢不同的是:
沒有查詢結(jié)果,不需要使用ResultSet
執(zhí)行方法用的是executeUpdate()不是executeQuery()
executeUpdate()方法也有返回值,但不是ResultSet,而是一個int,表示更新了多少條數(shù)據(jù),一般可不處理
5、什么是事務(wù)?
是一組原子性的數(shù)據(jù)庫操作,指的是一組數(shù)據(jù)庫操作中,要么都成功,要么都不成功。
一個經(jīng)典的例子:轉(zhuǎn)賬
從100001賬戶轉(zhuǎn)賬100.00元到100002賬戶:
update account1 set money=money-100.00 where code='100001';
update account1 set money=money+100.00 where code='100002';
如何進行事務(wù)管理?
默認是自動提交的,進行事務(wù)管理時首先要設(shè)為手動提交
程序正常運行時,最后調(diào)用Connection對象的commit方法進行事務(wù)提交
程序出現(xiàn)異常時,調(diào)用Connection對象的rollback方法進行事務(wù)回滾
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java使用JDBC向MySQL數(shù)據(jù)庫批次插入10W條數(shù)據(jù)(測試效率)
- centos7安裝mysql并jdbc測試教程
- Java使用JDBC驅(qū)動連接MySQL數(shù)據(jù)庫
- JSP中使用JDBC連接MySQL數(shù)據(jù)庫的詳細步驟
- 詳解spring開發(fā)_JDBC操作MySQL數(shù)據(jù)庫
- 使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)
- javaweb學(xué)習(xí)總結(jié)——使用JDBC處理MySQL大數(shù)據(jù)
- JDBC 連接MySQL實例詳解
- java jdbc連接mysql數(shù)據(jù)庫實現(xiàn)增刪改查操作
- JDBC連接mysql處理中文時亂碼解決辦法詳解
相關(guān)文章
MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實現(xiàn)類型轉(zhuǎn)換的講解
今天小編就為大家分享一篇關(guān)于MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實現(xiàn)類型轉(zhuǎn)換的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03MySQL性能優(yōu)化之Open_Table配置參數(shù)的合理配置建議
這篇文章主要介紹了MySQL性能優(yōu)化之Open_Table配置參數(shù)的合理配置建議,在MySQL數(shù)據(jù)庫中,Opened_tables表示打開過的表數(shù)量,需要的朋友可以參考下2014-07-07小型Drupal數(shù)據(jù)庫備份以及大型站點MySQL備份策略分享
為了防止web服務(wù)器出現(xiàn)故障而引起的數(shù)據(jù)丟失,數(shù)據(jù)庫備份顯得非常重要,以免出現(xiàn)重大損失。本文分析研究一下小型的Drupal站的備份策略以及大型站點的mysql備份策略2014-11-11mysql創(chuàng)建表設(shè)置表主鍵id從1開始自增的解決方案
在MySQL中用很多類型的自增ID,每個自增ID都設(shè)置了初始值,一般情況下初始值都是從0開始,然后按照一定的步長增加(一般是自增 1),下面這篇文章主要給大家介紹了關(guān)于mysql創(chuàng)建表設(shè)置表主鍵id從1開始自增的解決方案,需要的朋友可以參考下2023-04-04