public void demo() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1.加載驅動
// DriverManager.registerDriver(new Driver());// 會導致驅動註冊兩次。
Class.forName("com.mysql.jdbc.Driver");
// 2.獲得連接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest", "root", "root");
// 3.創建執行SQL語句的對象,並且執行SQL
// 3.1創建執行sql的對象
String sql = "select * from user";
stmt = conn.createStatement();
// 3.2執行sql
rs = stmt.executeQuery(sql);
while (rs.next()) {
int uid = rs.getInt("uid");
String username = rs.getString("username");
String password = rs.getString("password");
String name = rs.getString("name");
System.out.println(uid + " " + username + " " + password + " " + name);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 4.釋放資源
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlEx) { // ignore
}
rs = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;// 垃圾回收機制更早回收對象。
}
}
}
DriverManage :驅動管理類
主要作用:
一、註冊驅動
實際開發中註冊驅動會使用如下的方式:
Class.forName("com.mysql.jdbc.Driver");
用爲之前的方式會導致驅動註冊兩次。
二、獲得連接
Connection getConnection(String url,String username,String password);
url寫法:jdbc:mysql://localhost:3306/jdbc
簡寫:jdbc:mysql:///jdbc
connection:連接對象
主要作用:
一、創建執行SQL語句的對象
- statement createStatement() :執行sql語句,有sql注入的風險
- PrepareStatement prepareStrtement(String sql):預編譯SQL語句,解決SQL注入的漏洞
- CallableStatement prepareCall(String sql):執行SQL中存儲過程
二、進行事務管理
- setAutoCommit(boolean autoCommit):設置事務是否自動提交
- commit:事務提交
- rollback():事務回滾
Statement:執行SQL
主要作用:
一、執行SQL語句
- boolean execute(String sql):執行SQL,執行select語句返回true,否則返回false
- ResultSet executeQuery(String sql):執行SQL中的select語句
- int executeUpadate(String sql):執行SQL中的insert/update/delete語句
二、執行批處理操作
- addBatch(String sql):添加到批處理
- executeBatch():執行批處理
- clearBatch():清空批處理
ResultSet:結果集
結果集:其實就是查詢語句(select)語句查詢的結果的封裝
主要作用:
結果集獲取查詢到的結果的。
next():針對不同類型的數據可以使用getXXX()獲取數據,通用的獲取數據的方法:getObject();