/** * 數據庫連接 * * @author Administrator * */public class BaseDao { /** 連接對象 */ protected Connection con; /** 預編譯 */ protected PreparedStatement ps; /** 結果集 */ protected ResultSet rs; /** 資源檔案對象 */ private static Properties pro = new Properties(); /** * 靜態代碼塊,此塊在第一次新建類對象前優先加載在類模板中,只執行一次並且返回的pro靜態屬性一直儲存直到程序關閉 * */ static { /** 得到檔案的字節流 */ InputStream in = BaseDao.class.getResourceAsStream("/txt/dao.txt"); try { pro.load(in); } catch (IOException e) { e.printStackTrace(); } } /** * 連接數據庫,獲取Connection對象 * * @throws * 沒有找到類檔案 * @throws SQLException * 數據庫訪問異常 已測試透過 */ protected void setConnection() { try { Class.forName(pro.getProperty("driver")); this.con = DriverManager.getConnection(pro.getProperty("url"), pro .getProperty("userName"), pro.getProperty("pwd")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 關閉數據庫連接 * * @throws SQLException * 數據庫異常 * */ protected void close() { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (con != null) { con.close(); } } catch (Exception e) { e.printStackTrace(); } }} 上面這個是一個BaseDao這個只是起創建連接的作用,dao繼承他就行了 下面這個是一個查詢方法..只是給你做個例子示範.. 你如果不懂 你說清楚你的表的需求這些 我給你寫好查詢的方法.. public List
/** * 數據庫連接 * * @author Administrator * */public class BaseDao { /** 連接對象 */ protected Connection con; /** 預編譯 */ protected PreparedStatement ps; /** 結果集 */ protected ResultSet rs; /** 資源檔案對象 */ private static Properties pro = new Properties(); /** * 靜態代碼塊,此塊在第一次新建類對象前優先加載在類模板中,只執行一次並且返回的pro靜態屬性一直儲存直到程序關閉 * */ static { /** 得到檔案的字節流 */ InputStream in = BaseDao.class.getResourceAsStream("/txt/dao.txt"); try { pro.load(in); } catch (IOException e) { e.printStackTrace(); } } /** * 連接數據庫,獲取Connection對象 * * @throws * 沒有找到類檔案 * @throws SQLException * 數據庫訪問異常 已測試透過 */ protected void setConnection() { try { Class.forName(pro.getProperty("driver")); this.con = DriverManager.getConnection(pro.getProperty("url"), pro .getProperty("userName"), pro.getProperty("pwd")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 關閉數據庫連接 * * @throws SQLException * 數據庫異常 * */ protected void close() { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (con != null) { con.close(); } } catch (Exception e) { e.printStackTrace(); } }} 上面這個是一個BaseDao這個只是起創建連接的作用,dao繼承他就行了 下面這個是一個查詢方法..只是給你做個例子示範.. 你如果不懂 你說清楚你的表的需求這些 我給你寫好查詢的方法.. public List
你好,我寫的BaseDao:
package dao;
import java.sql.*;
/**
*
* @author Administrator
*數據庫連接
*/
public class BaseDao {
//連接字元串
public String driver="oracle.jdbc.driver.OracleDriver";//數據庫驅動
public String url="jdbc:oracle:thin:@localhost:1521:hfaccp";//建立到給定數據庫 URL 的連接。
public String username="system";//數據庫用戶
public String password="system";//數據庫密碼
//聲明接口
public Connection con;
public PreparedStatement pstmt;
public ResultSet rs;
//獲得數據庫連接
public Connection getConnection()
{
try {
Class.forName(driver);
con=DriverManager.getConnection(url,username,password);
} catch ( e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
//釋放數據庫資源
public void CloseAll()
{
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt!=null)
{
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null)
{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
4.求大神public interface BaseDAO
你在繼承類的時候,可以繼承它所有的公用方法和屬性,而這些類的屬性有兩種注入方式,一種是顯式注入,一種是隱式注入。隱式注入就是你繼承的類的屬性上面有類似於 @Autowired之類的註解,你在Spring中直接可以進行注入,顯式注入是你繼承的類的屬性上面沒有類似於注入相關的註解,所以只有從新重載你繼承類的某個屬性的set方法來進行添加註入的註解來進行注入。
就想你繼承了HibernateDaoSupport 類,就要顯式重載HibernateDaoSupport中的方法
這樣你在配置spring中的注入纔不會出錯