1. 程式人生 > >DAO模式+JDBC

DAO模式+JDBC

                    

實現DAO模式的步驟

  1. 建立實體類包Entity
  2. 建立DAO包(DAO包中包括實際需要的介面和對應的實現類)
  3. 建立業務層包Manager

使用JDBC的步驟

  1. 連線資料庫
  2. 為資料庫傳遞查詢和更新指令。
  3. 處理資料庫響應並返回的結果。

 

  • 連線資料庫所需條件
  1. 將連線資料庫所需的Jar包匯入到專案      (右擊專案名>properties>選中Libraies欄>點選Add JARS>找到匯入的驅動Jar包)
  2. 連線資料庫之前需要先配置好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.對返回的結果進行處理