java jdbc 详解_JDBC概述及详解各个对象
JDBC(Java DataBase Connectivity)詳解
一.概念:
JDBC是一種可執(zhí)行SQL語句的JavaAPI,Java數(shù)據(jù)庫鏈接,Java語言操做數(shù)據(jù)庫mysql
二.本質(zhì):
JDBC是一種可用于執(zhí)行SQL語句的Java API,由一些Java語言編寫的類和頁面組成。各個數(shù)據(jù)庫廠商能夠使用這套接口編程,真正執(zhí)行的是驅(qū)動jar包中的實現(xiàn)類。web
三.步驟:
導(dǎo)入驅(qū)動jar包
復(fù)制jar包到項目的libs目錄下
右鍵–>add as library
2.注冊驅(qū)動
3 獲取數(shù)據(jù)庫鏈接對象connection
4.定義sql語句
5.獲取執(zhí)行sql語句的對象Statemen
6.執(zhí)行sql,接受返回結(jié)果
7.處理結(jié)果
8.釋放資源
詳解各個對象
1.DriverManager:驅(qū)動管理對象
方法:static Connection getConnection()
參數(shù):URL:指定鏈接路徑 user:用戶名 password:密碼
語法:jdbc:mysql://ip地址(域名):端口號/數(shù)據(jù)庫名稱
例子:jdbc:mysql://localhost:3306
細(xì)節(jié):若是鏈接的是本機(jī)的服務(wù)器,則可省略數(shù)據(jù)庫的ip地址和端口。
2.Connection:數(shù)據(jù)庫鏈接對象
功能:獲取執(zhí)行sql的對象
createStatement()
JDBC控制事務(wù)
1.事務(wù):一個包含了多個步驟的業(yè)務(wù)操做,若是這個業(yè)務(wù)操做被事務(wù)管理,則這個步驟要么同時成功,要么同時失敗。
2.操做:
(1)開啟事務(wù)setAutocommit(blloean autocommit):調(diào)用該方法設(shè)置參數(shù)為false,即開啟事務(wù)。
(2)提交事務(wù)commmit()
(3) 回滾事務(wù)rollback()
3.使用connection對象來管理事務(wù)sql
3.Statement:執(zhí)行sql的對象
執(zhí)行sql的方法(要注意其不一樣的返回值類型)
(1)boolean execute(String sql):能夠執(zhí)行任意的sql
(2)int executeUpdate(String sql):
*返回值為影響的行數(shù),能夠經(jīng)過影響行數(shù)來判斷DML語句是否執(zhí)行成功,返回值>0則執(zhí)行成功
4.PrepareStatement:執(zhí)行SQL的對象
發(fā)現(xiàn)SQL注入問題:在拼接SQL時,有一些SQL的特殊關(guān)鍵字參與字符串的拼接,會形成安全性問題
解決方法:PrepareStatement繼承于prepareStatement
預(yù)編譯的SQL:參數(shù)使用占位符?數(shù)據(jù)庫
步驟:
1.導(dǎo)入驅(qū)動jar包
2.注冊驅(qū)動
3.獲取數(shù)據(jù)庫對象Connection
4.定義SQL
5.獲取執(zhí)行SQL的對象
6.給?賦值
- 方法:setXxx()
- 參數(shù)一:?的位置編號,從1開始(第?個?)
- 參數(shù)二:?的內(nèi)容,根據(jù)內(nèi)容肯定所使用的方法類型,如若?內(nèi)是int型,則采用的方法是getInt。
7.執(zhí)行SQL,接收返回結(jié)果,不須要sql
8.處理結(jié)果
9,釋放資源
二者關(guān)系:PreparedStatement接口繼承自Statement,繼承了其全部功能,另外還添加了一整套方法,用于發(fā)送設(shè)置給數(shù)據(jù)庫以取代IN參數(shù)占位符。
Statement
PrepareStatement
通用查詢
參數(shù)化查詢
先初始化SQL語句,再提交到數(shù)據(jù)庫中預(yù)處理
從零開始執(zhí)行SQL
定義sql語句
包含的SQL具備一個或多個IN參數(shù),留?做為占位符
執(zhí)行SQL方法時須要傳入SQL語句作參數(shù)
執(zhí)行sql方法無需傳參
相同點:二者均由Connection類對象建立 ,執(zhí)行步驟大自相同。編程
注意:應(yīng)該先編譯SQL語句,再傳遞占位符表明的參數(shù),順序顛倒則報錯安全
5.ResultSet:結(jié)果集對象。封裝查詢結(jié)果
next():游標(biāo)向下移動一行
getXxx():獲取數(shù)據(jù)
*Xxx:表明數(shù)據(jù)類型
*參數(shù):如getInt()
1.int:表明列標(biāo)號,從1開始
2.String:表明列名稱
使用步驟:
1.游標(biāo)向下移動一行
2.判斷是否有數(shù)據(jù)(可t循環(huán)來判斷)
3.獲取數(shù)據(jù)
如上圖,ResultSet經(jīng)過控制循環(huán)來增刪改查服務(wù)器
總結(jié)
以上是生活随笔為你收集整理的java jdbc 详解_JDBC概述及详解各个对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 防止头文件重复包含之pragma onc
- 下一篇: @bean注解和@component注解