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