1,jdbc的作用:與數據庫建立連接、執行SQL 語句、處理結果。
2,DriverManager :依據數據庫的不同,管理JDBC驅動
Connection :負責連接數據庫并擔任傳送數據的任務
Statement :由 Connection 產生、負責執行SQL語句
ResultSet:負責保存Statement執行后所產生的查詢結果
3,jdbc URL:提供一種標識數據庫的方法,使相應的JDBC驅動程序識別數據庫并與之建立4,連接:將對JDBC API的調用,轉換為對另一組數據庫連接API的調用
優點:可以訪問所有ODBC可以訪問的數據庫
缺點:執行效率低、功能不夠強大
5,純Java驅動
• 由JDBC驅動直接訪問數據庫
• 優點:100% Java,快又可跨平臺
• 缺點:訪問不同的數據庫需要下載專用的JDBC驅動
6,使用純Java驅動方式進行直連
1、下載數據庫廠商提供的驅動程序包
2、將驅動程序包引入工程中
3、編寫代碼,通過純Java驅動方式與數據庫建立連接
例如:
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManger.getconnection(“jdbc:mysq://localhost:3306/tset”,”root”,”mysql”);
7, 在使用純Java驅動方式進行數據庫連接時,如果程序在運行時拋出異常:
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;DatabaseName=news
那么出錯的原因是什么?如何解決?
工程中沒有載入驅動,應該把相應的.jar文件導入到lib文件夾下。
8,請單獨建立一個類ConnectionManager,專門負責建立數據庫連接、以及關閉連接,并思考這樣做帶來的好處是什么?
既便于管理又可以提高代碼的復用率。
9,PreparedStatement 接口繼承 Statement接口
PreparedStatement比普通的Statement對象使用起來更加靈活,更有效率
Sql語句運行多次時盡量使用preparedStatement,以便提高運行效率。
例子:
public class NewsFirstTitleDB2 {
public static void main(String[ ] args) {
Connection con = null;
PreparedStatement pStatement = null;
try {
SimpleDateFormat hmFromat =
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
con = ConnectionManager.getConnection();
String strSql = "insert into FirstLevelTitle values(?,?,?,?)";
pStatement = con.prepareStatement(strSql);
pStatement.setInt(1, 1);
pStatement.setString(2, "軍事");
pStatement.setString(3, "管理員");
pStatement.setString(4, hmFromat.format(new Date()));
pStatement.executeUpdate();
} catch (SQLException sqlE) {
sqlE.printStackTrace();
} finally {
ConnectionManager.closeStatement(pStatement);
ConnectionManager.closeConnection(con);
}
}
10,statement主要用于執行靜態的sql語句;
Preparedstatement執行動態的sql語句
Resultset 返回查詢的結果集