一、DriverManager
1、用于注冊驅動程序:registerDriver(Driver driver)。
更常用的是Class.forName("com.mysql.jdbc.Driver")是由于Driver中包含了registerDriver(Driver driver),值得注意的是,是mysql5之后的版本中,可以省略注冊驅動
2、獲取連接
使用getConnection(String url, String user,String password)
三個參數分別對應url連接路徑,user用戶名,password密碼,
其中url的參數格式較為固定:jdbc:mysql://ip地址(域名):端口號/數據庫名稱?參數鍵值對1&參數鍵值對2...
例如:jdbc:mysql://127.0.0.1:3306/db1
獲取連接的函數使用示例:
Connection conn = DriverManager.getConnection(url,user,password);
二、Connection
1、獲取執行SQL的對象
- 普通執行對象:Statement createStatement()
- 預編譯SQL的執行對象,防止注入:PreparedStatement prepareStatement(sql)
- 執行存儲過程的對象(不常用)
2、管理事務
- 開啟事務:setAutoCommit(boolean autoCommit)
- 提交事務:commit()
- 回滾事務:rollback()
一般在try...catch...語句塊中使用。
三、Statement接口
1、執行SQL語句
executeUpdate(sql)執行對表、數據庫增刪改的操作。返回值是一個int值返回受影響的行數。
executeQuery(sql)用于查詢操作。
四、ResultSet
1、封裝DQL查詢語句的結果
2、方法:
next():判斷數據表中當前行是否為有效行。
getXxx(參數):用于獲取數據,參數可以是列編號(1開始),也可以是列名。
一般格式:
while(rs.next()){rs.getXxx(參數);
}
五、PreparedStatement
編譯SQL語句并執行,可防止SQL注入。
使用該語句,獲取SQL執行對象時就傳入SQL語句,格式如下(使用占位符“?”)
String sql = "select * from student where name = ? and password = ?";
PreparedStatement pst = conn.prepareStatement(sql);
其中的“?”是一個參數值,設置如下:
setXxx(參數1(?的編號),參數2(值)):由此來給?賦值。Xxx是數據類型
之后執行sql不需要再傳遞sql語句。
executeUpdate();
executeQuery();
開啟預編譯功能:在url加入參數:useServerPrepStmts=true