轉載地址:http://blog.csdn.net/sl_say0601/archive/2006/01/16/581027.aspx
/*<br />* Created on 2005-7-27<br />*<br />* To change the template for this generated file go to<br />* Window>references>Java>Code Generation>Code and Comments<br />*/</p><p>package db;</p><p>import java.sql.Connection;<br />import java.sql.Statement;<br />import java.sql.PreparedStatement;<br />import java.sql.CallableStatement;<br />import java.sql.ResultSet;<br />import java.sql.DriverManager;<br />import java.sql.SQLException;<br />import java.sql.Types;</p><p>/**<br />* @author ljp<br />*<br />* To change the template for this generated type comment go to<br />* Window>references>Java>Code Generation>Code and Comments<br />*/</p><p>//該類用於封裝資料庫操作<br />public class DbBean<br />{</p><p> /**<br /> *<br /> */<br /> private String URL;//資料來源URL<br /> private String DRIVER;//資料庫驅動<br /> private String SQL;//SQL語句<br /> private boolean ISQUERY=true;//判斷是QUERY操作或UPDATE操作預設為QUERY<br /> private Connection CON;//語句對象<br /> private Statement SM;//語句對象<br /> private PreparedStatement PSM;//Prepared語句對象<br /> private CallableStatement CSM;//執行預存程序的語句對象<br /> private ResultSet RS;//結果集對象</p><p> public DbBean()<br /> {</p><p> }</p><p> //開啟資料庫連接<br /> public void openCon(String _url,String _driver)<br /> {<br /> SM=this.makeStatement(_url,_driver);<br /> }</p><p> //用於執行select操作<br /> public ResultSet getResult(String _url,String _driver,String _sql)<br /> {<br /> SM=makeStatement(_url,_driver);<br /> SQL=_sql;<br /> return this.runExecute();<br /> }</p><p> //用於執行insert,delete,update操作<br /> public void dbUpdate(String _url,String _driver,String _sql,boolean _isquery)<br /> {<br /> SM=this.makeStatement(_url,_driver);<br /> SQL=_sql;<br /> ISQUERY=_isquery;<br /> this.runExecute();<br /> }</p><p> //用於初始化prepared語句對象<br /> public void dbPrepared(String _url,String _driver,String _sql)<br /> {<br /> PSM=this.makePreparedStatement(_url,_driver,_sql);<br /> SQL=_sql;<br /> }</p><p> //用於執行prepared語句的資料庫操作<br /> public void runPrepared()<br /> {<br /> try<br /> {<br /> PSM.execute();<br /> System.out.println("執行prepared語句的資料庫操作");<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("執行prepared語句的資料庫操作出錯");<br /> }</p><p> }<br /> //_values的值用於填充SQL語句中的?處的參數<br /> public void setPreparedVal(Object[] _values)<br /> {<br /> try<br /> {<br /> for(int i=0;i<_values.length;i++)<br /> {<br /> PSM.setObject(i,_values[i]);<br /> }<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("設定prepared的SQL語句的參數時出錯");<br /> }</p><p> }<br /> //_values的值用於填充SQL語句中的?處的String型的參數<br /> public void setPreparedValString(String[] _values)<br /> {<br /> try<br /> {<br /> for(int i=0;i<_values.length;i++)<br /> {<br /> PSM.setString(i,_values[i]);<br /> }<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("設定prepared的SQL語句的String型參數時出錯");<br /> }</p><p> }<br /> //_values的值用於填充SQL語句中的?處的int型參數<br /> public void setPreparedValInt(int[] _values)<br /> {<br /> try<br /> {<br /> for(int i=0;i<_values.length;i++)<br /> {<br /> PSM.setInt(i,_values[i]);<br /> }<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("設定prepared的SQL語句的int型參數時出錯");<br /> }</p><p> }</p><p> //用於初始化執行預存程序的語句對象,_procedurename為預存程序名和參數列表用如"_Test[(?,?)]",有傳回值時outval="?=";沒有時outval="";<br /> public void dbCallable(String _url,String _driver,String _procedurename,String _outval)<br /> {<br /> CSM=this.makeCallableStatement(_url,_driver,_procedurename,_outval);<br /> }</p><p> //設定預存程序的傳回值<br /> public void setProcedureOut(int _sqlType)<br /> {<br /> try<br /> {<br /> CSM.registerOutParameter(0,_sqlType);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("設定預存程序的傳回值時出錯");<br /> }<br /> }<br /> //擷取預存程序的傳回值<br /> public void getProcedureOut()<br /> {<br /> try<br /> {<br /> CSM.getObject(0);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("擷取預存程序的傳回值時出錯");<br /> }<br /> }</p><p> //用於執行預存程序的資料庫操作<br /> public void runCallable()<br /> {<br /> try<br /> {<br /> PSM.execute();<br /> System.out.println("執行預存程序的資料庫操作");<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("用於執行預存程序的資料庫操作出錯");<br /> }<br /> }</p><p> //可以在首次執行資料庫操作後,再次操作時使用<br /> public ResultSet reExecute()<br /> {<br /> if(SQL!=null)<br /> {<br /> return this.runExecute();<br /> }<br /> else<br /> {<br /> System.out.println("請先輸入SQL語句");<br /> return null;<br /> }<br /> }</p><p> //設定SQL語句<br /> public void setSql(String _sql)<br /> {<br /> SQL=_sql;<br /> }</p><p> //設定資料庫操作類型<br /> public void setIsquery(boolean _isquery)<br /> {<br /> ISQUERY=_isquery;<br /> }</p><p> //關閉資料庫連接出錯<br /> public void dbClose()<br /> {<br /> try<br /> {</p><p> URL=null;<br /> DRIVER=null;<br /> SQL=null;<br /> ISQUERY=true;</p><p> CON.commit();</p><p> if(RS!=null)<br /> {<br /> RS.close();<br /> }</p><p> if(SM!=null)<br /> {<br /> SM.close();<br /> }</p><p> if(CON!=null)<br /> {<br /> CON.close();<br /> }<br /> System.out.println("關閉資料庫連接");<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("關閉資料庫連接出錯");<br /> }</p><p> }</p><p> //內部使用方法,用於建立語句對象<br /> private Statement makeStatement(String _url,String _driver)<br /> {</p><p> try<br /> {<br /> //載入資料庫驅動<br /> Class.forName(_driver);<br /> System.out.println("載入資料庫驅動");<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("無法載入資料庫驅動");<br /> }</p><p> Statement sm;<br /> try<br /> {<br /> //建立資料庫連接語句對象<br /> CON=DriverManager.getConnection(_url);<br /> sm=CON.createStatement();<br /> System.out.println("建立資料庫連接");<br /> return sm;</p><p> }<br /> catch(Exception e)<br /> {<br /> System.out.println("建立資料庫連接語句對象出錯");<br /> return null;<br /> }</p><p> }</p><p> //內部使用方法,用於建立Prepared語句對象<br /> private PreparedStatement makePreparedStatement(String _url,String _driver,String _preparedsql)<br /> {</p><p> try<br /> {<br /> //載入資料庫驅動<br /> Class.forName(_driver);<br /> System.out.println("載入資料庫驅動");<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("無法載入資料庫驅動");<br /> }</p><p> PreparedStatement psm;<br /> try<br /> {<br /> //建立資料庫連接語句對象<br /> CON=DriverManager.getConnection(_url);<br /> psm=CON.prepareStatement(_preparedsql);<br /> System.out.println("建立資料庫連接");<br /> return psm;</p><p> }<br /> catch(Exception e)<br /> {<br /> System.out.println("建立資料庫連接Prepared語句對象出錯");<br /> return null;<br /> }</p><p> }</p><p> //內部使用方法,用於建立執行預存程序的語句對象<br /> private CallableStatement makeCallableStatement(String _url,String _driver,String _procedurename,String _outval)<br /> {</p><p> try<br /> {<br /> //載入資料庫驅動<br /> Class.forName(_driver);<br /> System.out.println("載入資料庫驅動");<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("無法載入資料庫驅動");<br /> }</p><p> CallableStatement csm;<br /> try<br /> {<br /> //建立資料庫連接語句對象<br /> CON=DriverManager.getConnection(_url);<br /> csm=CON.prepareCall("{"+_outval+"call "+_procedurename+"}");<br /> System.out.println("建立資料庫連接");<br /> return csm;</p><p> }<br /> catch(Exception e)<br /> {<br /> System.out.println("建立執行預存程序的語句對象出錯");<br /> return null;<br /> }</p><p> }</p><p> //內部使用方法,執行SQL語句並返回結果集<br /> private ResultSet runExecute()<br /> {<br /> try<br /> {<br /> if(ISQUERY)<br /> {<br /> RS=SM.executeQuery(SQL);<br /> System.out.println("執行資料庫查詢操作");<br /> return RS;<br /> }<br /> else<br /> {<br /> ISQUERY=true;<br /> SM.executeUpdate(SQL);<br /> System.out.println("執行資料庫更新操作");<br /> return null;<br /> }<br /> }<br /> catch(Exception e)<br /> {<br /> System.out.println("執行SQL語句出錯");<br /> return null;<br /> }</p><p> }</p><p>}<br />/*<br />* Created on 2005-7-27<br />*<br />* To change the template for this generated file go to<br />* Window>references>Java>Code Generation>Code and Comments<br />*/<br />package db;</p><p>import java.sql.ResultSet;</p><p>/**<br />* @author ljp<br />*<br />* To change the template for this generated type comment go to<br />* Window>references>Java>Code Generation>Code and Comments<br />*/</p><p>//該類可以協助程式員較方便的完成資料庫操作,是DbBean的功能擴充<br />public class DbAccess extends DbBean<br />{</p><p> /**<br /> *<br /> */</p><p> private String ACCESSURL="jdbcdbc:coolljpDB";//資料來源URL<br /> private String ACCESSDRIVER="sun.jdbc.odbc.JdbcOdbcDriver";//資料庫驅動</p><p> public DbAccess()<br /> {</p><p> }</p><p> //初始化資料來源URL和資料庫驅動<br /> public DbAccess(String _ACCESSURL,String _ACCESSDRIVER)<br /> {<br /> ACCESSURL=_ACCESSURL;<br /> ACCESSDRIVER=_ACCESSDRIVER;<br /> }</p><p> //執行查詢操作並返回結果集,返回表中所有元素<br /> public ResultSet doSelect(String _tablename)<br /> {</p><p> ResultSet rs=null;</p><p> try<br /> {<br /> String sql="select * from "+_tablename;<br /> rs=super.getResult(ACCESSURL,ACCESSDRIVER,sql);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doSelect操作出錯");<br /> }</p><p> return rs;</p><p> }</p><p> //執行查詢操作並返回結果集,返回指定元素<br /> public ResultSet doSelect(String _tablename,String _wheresql) //_wheresql代表where之後的sql語句<br /> {</p><p> ResultSet rs=null;</p><p> try<br /> {<br /> String sql="select * from "+_tablename+" where "+_wheresql;<br /> rs=super.getResult(ACCESSURL,ACCESSDRIVER,sql);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doSelect操作出錯");<br /> }</p><p> return rs;</p><p> }</p><p> //刪除合格行<br /> public void doDelete(String _tablename,String _wheresql)<br /> {<br /> try<br /> {<br /> String sql="delete * from "+_tablename+" where "+_wheresql;<br /> super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doDelete操作出錯");<br /> }<br /> }</p><p> //執行刪除操作<br /> public void doDelete(String _tablename,String _names,String _wheresql)//_names代表所要刪除的欄位名或_names="*"<br /> {<br /> try<br /> {<br /> String sql="delete ("+_names+") from "+_tablename+" where "+_wheresql;<br /> super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doDelete操作出錯");<br /> }<br /> }</p><p> //刪除所有行<br /> public void doDelete(String _tablename)<br /> {<br /> try<br /> {<br /> String sql="delete from "+_tablename;<br /> super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doDelete操作出錯");<br /> }<br /> }</p><p> //執行插入操作<br /> public void doInsert(String _tablename,String _values)//_values是所要入元素的值<br /> {<br /> try<br /> {<br /> String sql="insert into "+_tablename+" values ("+_values+")";<br /> super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doDelete操作出錯");<br /> }<br /> }</p><p> //執行插入操作<br /> public void doInsert(String _tablename,String _names,String _values)//_names是所要插入的欄位名,_values是所要入元素的值<br /> {<br /> try<br /> {<br /> String sql="insert into "+_tablename+" ("+_names+") values ("+_values+")";<br /> super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doDelete操作出錯");<br /> }<br /> }</p><p> //執行修改操作<br /> public void doUpdate(String _tablename,String _values,String _wheresql)//_values是所要修改元素和值,_wheresql代表where之後的sql語句<br /> {<br /> try<br /> {<br /> String sql="update "+_tablename+" set "+_values+" where "+_wheresql;<br /> super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);<br /> }<br /> catch (Exception e)<br /> {<br /> System.out.println("doUpdate操作出錯");<br /> }<br /> }</p><p>} </p><p>
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/sl_say0601/archive/2006/01/16/581027.aspx