文章目錄
- JDBC
JDBC
ODBC:
開放式資料庫連接(ODBC,Open DataBase Connectivity)是Microsoft提供的應用程式程式(Appliction Programming Interface,API),用于訪問資料庫
JDBC:
JDBC(Java Database Connectivity,Java資料庫連接)是一種可用于執行SQL陳述句的Java API(Appoliation Programming Interface,應用程式設計介面)
JDBC的發展:
第一個版本(JDBC-ODBC):
JDBC-ODBC,java程式去連接ODBC,完成資料庫操作(橋接)
第二個版本(JDBC本地API):
本地API連接(利用資料庫本身的一組API)
第三個版本(JDBC-NET 純java驅動):
網路API連接(利用中間接技術,操作資料庫)
第四個版本(本地協議純java驅動):
純java驅動(全部由java程式,完成操作)
資料查詢步驟:
//步驟1:加載驅動
Class.forName("com.mysql.jdbc.Driver");
//步驟2:得到連接
Connection conn =DriverManager.getConnection("連接字串", "用戶名","密碼");
//連接字串:
/* jdbc:mysql://localhost:3306/資料庫名?characterEncoding=UTF-8
解釋:
jdbc:mysql:使用jdbc連接mysql資料庫
localhost: 表示本機
3306:表示端品號
characterEncoding=UTF-8:表示解決mysql亂碼的問題
*/
//步驟3:得到執行sql陳述句的物件(Statement有sql漏洞的問題)
PreparedStatement pstmt = conn.prepareStatement("sql陳述句"); //引數的地方用?號表示
//設定引數
pstmt.setxxxx(序號,值); //xxx是具體的資料型別,如設定字串引數用setString()
//步驟4:執行查詢
ResultSet rs = pstmt.executeQuery();
//取多行資料
while(rs.next()){ //移動到下一條資料
//取具體列的資料
rs.getxxxx("欄位名"或下標); //xxx是具體的資料型別,如取字串用getString()
}
//取一條資料或判斷是否有資料
if(rs.next()){
//有查詢到資料......取rs.getxxxx()
}else{
//沒有查詢到資料....
}
//步驟5:關閉
rs.close();
pstmt.close();
conn.close();
增、刪、改步驟:
//步驟1:加載驅動
Class.forName("com.mysql.jdbc.Driver");
//步驟2:得到連接
Connection conn =DriverManager.getConnection("連接字串", "用戶名","密碼");
//步驟3:得到執行sql陳述句的物件
PreparedStatement pstmt = conn.prepareStatement("sql陳述句");
//設定引數
pstmt.setxxxx(序號,值);
//步驟4:執行 insert update delete
int 變數名 = pstmt.executeUpdate(); //回傳受影響的行數(int)
//步驟5:關閉
pstmt.close();
conn.close();
if(row>=1){
//成功....
}else{
//失敗.........
}
資料庫幫助類
import java.sql.*;
/**
* mysql幫助類
*/
public class ConnDB {
/**
* 打開連接
* @return
*/
public static Connection getConn(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookDB?characterEncoding=UTF-8","root","123456");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 關閉連接
*/
public static void closeDB(ResultSet rs, PreparedStatement pstmt,Connection conn){
try {
if(rs != null){
rs.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
try {
if(pstmt != null){
pstmt.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
try {
if(conn != null){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/273290.html
標籤:其他
下一篇:Java官方教程(六-5)Passing Information to a Method or a Constructor 傳資訊給方法(2021.4.6)
