JDBC(Java Database Connective):JDBC是一種與不同的數據庫連接的操作標準。
一個類四個接口:
①java.sql.DriverManagers類:驅動管理。(註冊、加載驅動)
②java.sql.Connection接口:數據庫的連接。
創建Statement接口對象的方法:
Statement createStatement();
創建PreparedStatement接口對象的方法:
PreparedStatement prepareStatement(String sql)
注意第二個prepare沒有d!!
③java.sql.Statement接口:操作sql語句。
Statement接口對象實現數據庫操作的方法:
int executeUpdate(String sql) //數據更新
ResultSet executeQuery(String sql) //數據查詢
④java.sql.PreparedStatement接口(子接口):操作sql語句。
一系列的setXxx()方法爲指定順序編號的佔位符設置具體內容。
int executeUpdate(String sql) //數據更新
ResultSet executeQuery(String sql) //數據查詢
⑤java.sql.ResultSet接口:返回查詢結果集,相當於數據表。
第一步:加載驅動程序。
Class.forName("com.mysql.jdbc.Driver");
第二步:連接數據庫。
連接數據庫需要有以下3個信息:數據庫的鏈接地址、數據庫的用戶名、數據的密碼。(數據庫服務要打開)
連接數據庫需要依靠DriverManager類中的方法:
DriverManager.getConnection(String url,String user,String password) throws SQLException;
第三步:執行sql語句並返回執行結果。(用Statement、PreparedStatement、ResultSet結果)
第四步:關閉數據庫。
連接數據庫:(mysql)
import java.sql.*;
public class Test2 {
private static final String DBDRIVER ="com.mysql.jdbc.Driver";
private static final String DBURL ="jdbc:mysql://localhost:3306/406";
private static final String USER ="root";
private static final String PASSWD ="123456";
public static void main(String[] args) throws Exception{
Class.forName(DBDRIVER); //第一步:加載驅動程序
Connection conn =DriverManager.getConnection(DBURL,USER,PASSWD);
//第二步:連接數據庫
System.out.println(conn); //返回結果是否連接成功
conn.close(); //第四步:關閉數據庫
}
}
在這其中只是執行了1、2、4步操作
Statement接口和PreparedStatement接口的區別
(能使用PreparedStatement接口就使用)
用PreparedStatement接口查詢全部數據:
import java.sql.*;
public class Test2 {
private static final String DBDRIVER ="com.mysql.jdbc.Driver";
private static final String DBURL ="jdbc:mysql://localhost:3306/406";
private static final String USER ="root";
private static final String PASSWD ="123456";
public static void main(String[] args) throws Exception{
Class.forName(DBDRIVER); //第一步:加載驅動程序
Connection conn =DriverManager.getConnection(DBURL,USER,PASSWD);//第二步:連接數據庫
String sql =" SELECT uid,uname,pwd FROM t_user ORDER BY uid " ;//第三步:執行sql語句
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery() ; //數據查詢,不設置佔位符
while(rs.next()){
int uid =rs.getInt(1); //取出第1個數據列內容
String user = rs.getString(2); //取出第2個數據列內容
String pwd = rs.getString(3); //取出第3個數據列內容
System.out.println(uid+","+user+"," + pwd);
}
conn.close(); //第四步:關閉數據庫
}
}
其實執行不同的操作要改變的只有第三步。
批處理:在JDBC2.0後開始增加,作用是一次性向數據庫中發出多條操作命令。
事務處理的方法:
void commit() //事務提交
void rollback() //事務回滾
void setAutoCommit(boolean autoCommit) //設置是否爲自動提交
事務處理的作用:當批處理進行了數據更新操作時,如果某個SQL語句出現了錯誤,可以設置整體更新操作是否提交。(默認情況下在SQL語句之前的SQL更新都會執行)