mysql dataset_数据库 dataset database
我看到謝了個,輕輕笑了。沒別意思啊^-^,幫頂一下?謝了個~packageorg.lsqt.components.dao.dbutil;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importjava.util.Properties;importjavax.naming.InitialContext;importjavax.naming.NamingException;importjavax.sql.DataSource;importorg.apache.commons.dbutils.QueryRunner;importorg.apache.commons.dbutils.handlers.ArrayListHandler;importorg.apache.commons.lang.StringUtils;importorg.apache.log4j.Logger;importorg.lsqt.components.dao.suport.DataRow;importorg.lsqt.components.dao.suport.DataSet;importorg.lsqt.components.dao.suport.DataTable;importorg.lsqt.components.dao.suport.DbHelper;importorg.lsqt.components.dao.suport.ParamType;/?
???功能說明:???該執行器優先使用JNDI配置的數據源,其次才是jdbc數據源???該SQL執行器,提供簡易并直接的SQL語句操作數據庫.???該SQL執行器不依賴于任何第三方的數據源創建????(注:在多個service層內調用多個執行器,沒有事務控制)???編寫日期:2011-4-21?作者:袁Sky???歷史記錄?修改日期:2012-3-10?修改人:袁Sky?修改內容:???1.添加JNDI支持???2.添加存儲過程執行支持??/publicclassSqlExecutor{//privatestaticfinalLoggerLOGGER=Logger.getLogger(SqlExecutor.class);//privatestaticStringUSERNAME;/**/privatestaticStringPASSWORD;//privatestaticStringURL;/**/privatestaticStringDRIVERCLASSNAME;//privatestaticStringJNDINAME;/**/privatestaticDataSourcedataSource;//privatestaticbooleanhasJndiDataSource;//privatestaticPropertiesproperties=newProperties();static{loadConfigFile();hasJndiDataSource=loadJndiDataSource();if(hasJndiDataSource==false){try{Class.forName(DRIVERCLASSNAME);}catch(ClassNotFoundExceptione){e.printStackTrace();}}}privatestaticvoidloadConfigFile(){try{properties.load(SqlExecutor.class.getResourceAsStream("/dbconfig.properties"));LOGGER.debug(properties);USERNAME=properties.getProperty("username");PASSWORD=properties.getProperty("password");URL=properties.getProperty("url");DRIVERCLASSNAME=properties.getProperty("driverClassName");JNDINAME=properties.getProperty("jndiName");}catch(Exceptione){try{LOGGER.error("notfounddataSource'sconfigurationfile");thrownewException(e.getMessage());}catch(Exceptione1){e1.printStackTrace();}}}privatestaticbooleanloadJndiDataSource(){try{if(StringUtils.isNotEmpty(JNDINAME)){InitialContextcontext=newInitialContext();dataSource=(DataSource)context.lookup(JNDINAME);}}catch(NamingExceptione){LOGGER.warn("havenoJNDIconfigfound");returnfalse;}returnfalse;}privatestatic?ConnectiongetConnection(){try{if(hasJndiDataSource){LOGGER.debug("database'sconnectionfromJNDIdataSource");returndataSource.getConnection();}else{Connectionconn=DriverManager.getConnection(URL,USERNAME,PASSWORD);LOGGER.debug("database'sconnectionfromDriverManager");returnconn;}}catch(SQLExceptione){LOGGER.debug(e);e.printStackTrace();}returnnull;}//-------------------------------------------------------------------------------/處理參數占位符字符串@paramparamValues?paramValues@returnprocessprocedureParamHold/privatestaticStringprocessProcedureParamHold(Object[]paramValues){StringholdString="";intholdLength=paramValues.length;for(inti=0;i@returnDataSet?/publicstaticDataSetexecuteProcedure(finalStringprocedureName){finalDataSetDATASET=newDataSet();CallableStatementcstmt=null;ResultSetrs=null;Connectioncon=null;try{con=getConnection();cstmt=con.prepareCall("{call"+procedureName+"()}");booleanhasResults=cstmt.execute();while(hasResults){DataTabledt=newDataTable();rs=cstmt.getResultSet();intcolCount=rs.getMetaData().getColumnCount();while(rs.next()){DataRowrow=newDataRow();for(inti=0;i"+e.getMessage());returnnull;}finally{DbHelper.destroy(con,cstmt,rs);}returnDATASET;}/**執行只帶輸入參數的存儲過程@paramprocedureName?存儲過程名稱@paramparamValues入參值@returnDataSet數據集/publicstaticDataSetexecuteProcedure(finalStringprocedureName,finalObject[]paramValues){finalDataSetDATASET=newDataSet();CallableStatementcstmt=null;ResultSetrs=null;Connectioncon=null;try{con=getConnection();cstmt=con.prepareCall("{call"+procedureName+"("+processProcedureParamHold(paramValues)+")}");booleanhasResults=cstmt.execute();while(hasResults){DataTabledt=newDataTable();rs=cstmt.getResultSet();intcolCount=rs.getMetaData().getColumnCount();while(rs.next()){DataRowrow=newDataRow();for(inti=0;i"+e.getMessage());returnnull;}finally{DbHelper.destroy(con,cstmt,rs);?}returnDATASET;}/存儲過程調用(返回結果集+輸出參數+執行系列更新語句),調用時顯示指定入參和輸出參數據數據類型?@paramprocedureName存儲過程名稱@paramparamValues入參值和輸出參數的值@paramparamValueTypes儲存過程入參和輸出參數據的數據類型:ParamType.String待@returnDataSet數據集/publicstaticDataSetexecuteProcedure(finalStringprocedureName,finalObject[]paramValues,finalint[]paramValueTypes){if(paramValues.length!=paramValueTypes.length){LOGGER.error("procedureexecutefail,Parametersandparametertypesvalue,thelengthnotequal?");returnnull;}finalDataSetDATASET=newDataSet();StringsqlHold=processProcedureParamHold(paramValues);CallableStatementcstmt=null;ResultSetrs=null;Connectioncon=null;try{con=getConnection();cstmt=con.prepareCall("{call"+procedureName+"("+sqlHold+")}");ListoutputParamIndex=newArrayList();?for(inti=0;ioutputValues=newArrayList();for(inti=0;i"+e.getMessage());returnnull;}finally{DbHelper.destroy(con,cstmt,rs);?}returnDATASET;}/**執行更新的SQL語句@paramsql@return/publicstaticbooleanexecuteSql(Stringsql){QueryRunnerrun=newQueryRunner();Connectionconn=getConnection();try{returnrun.update(conn,sql)>0;}catch(SQLExceptionex){LOGGER.error("executesqlfail==>"+ex.getMessage());returnfalse;}finally{DbHelper.destroy(conn,null,null);}}publicstaticbooleanexecuteSql(Stringsql,Object[]paramValues){QueryRunnerrun=newQueryRunner();Connectionconn=getConnection();try{returnrun.update(conn,sql,paramValues)>0;}catch(SQLExceptionex){LOGGER.error("executesqlfail==>"+ex.getMessage());returnfalse;}finally{DbHelper.destroy(conn,null,null);}}/**批量執行SQL更新語句@paramsql帶占位符的SQL語句@paramdataTable參數數據表格?/publicstaticbooleanexecuteSql(Stringsql,Object[][]dataTable){QueryRunnerrun=newQueryRunner();Connectionconn=getConnection();try{?returnrun.batch(conn,sql,dataTable).length>0;?}catch(SQLExceptionex){LOGGER.debug("executesqlfail==>"+ex.getMessage());returnfalse;}finally{??DbHelper.destroy(conn,null,null);}}/**執行查詢語句,返回二維結果集@paramsql@return@throwsSQLException/publicstaticListexecuteSqlQuery(Stringsql){QueryRunnerrun=newQueryRunner();Connectionconn=getConnection();try{return?run.query(conn,sql,newArrayListHandler(){@OverrideprotectedObject[]handleRow(ResultSetrs)throwsSQLException{returnsuper.handleRow(rs);}});}catch(SQLExceptionex){LOGGER.error("executesqlfail==>"+ex.getMessage());returnnull;}finally{DbHelper.destroy(conn,null,null);}}/**執行帶"?"占位符的查詢語句,返回二維結果集@paramsql@paramparamValues@return@throwsSQLException/publicstaticListexecuteSqlQuery(Stringsql,Object[]paramValues){QueryRunnerrun=newQueryRunner();Connectionconn=getConnection();try{returnrun.query(conn,sql,newArrayListHandler(){@OverrideprotectedObject[]handleRow(ResultSetrs)throwsSQLException{returnsuper.handleRow(rs);}},paramValues);}catch(SQLExceptionex){LOGGER.error("executesqlfail==>"+ex.getMessage());returnnull;}finally{DbHelper.destroy(conn,null,null);}}}謝謝阿,我這個自定義加載怎么搞定那~就是讀取了配置文件,怎么跟spring整合那~<?xmlversion ="1.0"encoding="UTF-8"?>????不同myjar.jar由JDK的ApplicationClassLoader加載而你自己定義的classLoader去加載xx.jar那么在myjar中是找不到xx.jar中的東西的建議學習一下OSGi,對classLoader應用的典型好的我看看謝謝阿總結
以上是生活随笔為你收集整理的mysql dataset_数据库 dataset database的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mybatis mysql查询树形结构_
- 下一篇: mysql 二进制转字符串_MySql字
