DAO模式+JDBC
阿新 • • 發佈:2018-11-18
實現DAO模式的步驟
- 建立實體類包Entity
- 建立DAO包(DAO包中包括實際需要的介面和對應的實現類)
- 建立業務層包Manager
使用JDBC的步驟
- 連線資料庫
- 為資料庫傳遞查詢和更新指令。
- 處理資料庫響應並返回的結果。
- 連線資料庫所需條件
- 將連線資料庫所需的Jar包匯入到專案 (右擊專案名>properties>選中Libraies欄>點選Add JARS>找到匯入的驅動Jar包)
- 連線資料庫之前需要先配置好datebase.properties檔案 (配置檔案(datebase.properties)中需要的基本引數)
配置檔案中的基本引數
driver:com.mysql.jdbc.Driver (連線資料庫的驅動) [連線不同的資料庫需要不同的驅動]
url:jdbc:mysql://localhost:3306/需要連線資料庫的名稱 (資料庫的地址)
username:root (資料庫的使用者名稱) [使用者名稱和密碼與你所連線的資料庫一致]
password:root (資料庫的密碼)
這是一個工具類,包括了得到連線物件的方法,關閉資源,執行sql語句的方法,配合DAO包中的實現類使用
public class BaseDao {
private static String driver;//驅動
private static String url;//配置檔案路徑
private static String username;//資料庫的賬戶
private static String password;//資料庫密碼
//類載入器
static{
Properties pro=new Properties();
//讀取配置檔案的類
InputStream in=BaseDao.class.getClassLoader().getResourceAsStream("database.properties");
try {
//讀取配置檔案中的資訊
pro.load(in);
driver=pro.getProperty("driver");
url=pro.getProperty("url");
username=pro.getProperty("username");
password=pro.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//得到連線物件的方法
public Connection getConnection(){
Connection conn=null;
//載入驅動
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//關閉資源的方法
public void closeAll(Connection conn,Statement state,ResultSet rs){
try {
if(rs!=null){
rs.close();
}
if(state!=null){
state.close();
}
if(rs!=null){
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//通用的執行方法
public int execute(String sql,Object[] params){
PreparedStatement pstmt=null;
int num=0;
Connection conn=this.getConnection();
try {
pstmt=conn.prepareStatement(sql);
if(params!=null){
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1, params[i]);
}
}
//執行sql語句
num=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeAll(conn,pstmt,null);
}
return num;
}
}
2.根據需求執行你所需要的sql語句
3.對返回的結果進行處理