一、JDBC
JDBC 的開發(fā)步驟
0)導入驅(qū)動 jar 包
在工程中新建 lib 文件夾,然后導入 mysql-connector-java-5.1.39-bin.jar 文件。右鍵選中 jar 包,build path -> add to path...
1)注冊數(shù)據(jù)庫驅(qū)動
主要是告訴程序坤学,我們需要去訪問哪個數(shù)據(jù)庫,MySQL 還是 Oracle...
如果使用 DriverManager 來注冊报慕,底層會注冊兩次深浮。不推薦。
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
推薦使用反射技術(shù)眠冈!
Class.forName(“com.mysql.jdbc.Driver”);
2)獲得數(shù)據(jù)庫連接
通過連接對象略号,完成對選定數(shù)據(jù)庫的連接。Connection
獲取數(shù)據(jù)庫連接的時候需要傳遞三個參數(shù):數(shù)據(jù)庫的路徑洋闽、用戶名和密碼玄柠。
數(shù)據(jù)庫路徑:jdbc:數(shù)據(jù)庫名稱://IP地址:端口號/數(shù)據(jù)庫名稱
String url = “jdbc:mysql://localhost:3306/jss”;
String user = “root”;
String pass = “123”;
Connection conn = DriverManager.getConnection(url, user, pass);
3)獲得SQL語句執(zhí)行對象
通過上面獲取的連接對象來獲取SQL語句的執(zhí)行者對象。
Statement stmt = conn.createStatement();
4)執(zhí)行SQL語句
使用執(zhí)行者對象诫舅,向數(shù)據(jù)庫執(zhí)行SQL語句羽利。
//準備 SQL 語句,在進行執(zhí)行刊懈。
String sql = “select * from shop”;
//executeQuery()这弧,執(zhí)行查詢。使用 ResultSet 結(jié)果集來接收
ResultSet rs = stmt.executeQuery(sql);
5)設置SQL語句中的值
如果SQL語句中有占位符的話虚汛,需要給占位符設置值匾浪。
(一般在使用 PreparedStatement 的時候需要設置)
// 判斷結(jié)果集是否有值,然后獲取對應的值
while (rs.next()){
System.out.println(rs.getInt("id") +"--"+ rs.getString("pname")+"--"
+ rs.getDouble("price")+"---"+ rs.getString("pdesc"));
}
6)處理獲取到的結(jié)果
如果返回集合卷哩,則循環(huán)遍歷蛋辈,獲取對應的值。
// 判斷結(jié)果集是否有值将谊,然后獲取對應的值
while (rs.next()){
System.out.println(rs.getInt("id") +"--"+ rs.getString("pname")+"--"
+ rs.getDouble("price")+"---"+ rs.getString("pdesc"));
}
7)釋放連接資源
主要關閉連接對象冷溶,執(zhí)行者對象,結(jié)果集等尊浓。
// 順序逞频,從近到遠
rs.close();
stmt.close();
conn.close();
代碼實現(xiàn)
package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Demo {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//步驟0:導入驅(qū)動 jar 包
/*在工程中新建 lib 文件夾,然后導入 mysql-connector-java-5.1.39-bin.jar 文件栋齿。
右鍵選中 jar 包苗胀,build path -> add to path...*/
//步驟1:注冊數(shù)據(jù)庫驅(qū)動
//如果使用 DriverManager 來注冊,底層會注冊兩次瓦堵。不推薦基协。
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");
//步驟2:獲取數(shù)據(jù)庫連接
String url = "jdbc:mysql://localhost:3306/student_information";
String user = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url,user,password);
//System.out.println(conn);
//步驟3:獲得SQL語句執(zhí)行對象
Statement stmt = conn.createStatement();
//步驟4:執(zhí)行SQL語句
String sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);
//步驟5:處理獲取的 到的結(jié)果
while(rs.next()) {
System.out.println(rs.getString("Sno") + " " + rs.getString("Sname") + " "
+rs.getString("Ssex") + " " +rs.getInt("Sage") + " " + rs.getString("Sdept"));
}
//步驟6:釋放連接資源
rs.close();
stmt.close();
conn.close();
}
}