我看到谢了个,轻轻笑了。没别意思啊^-^,帮顶一下?谢了个~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相关推荐

  1. mysql三高讲解(二)2.9: mysql示例数据库sakia database的使用

    1.mysql.com->document->more->sakia database 2.点击TFG(linux)zip(windows)进行下载 3.新建表 4.导入数据 5.查 ...

  2. mysql创建数据库CREATE DATABASE

    方法一.指定其默认字符集为 utf8,默认校对规则为 utf8_chinese_ci(简体中文,不区分大小写) CREATE DATABASE IF NOT EXISTS `community` CH ...

  3. mysql drop库_Mysql 删除数据库drop database详细介绍

    Mysql 删除数据库drop database 方法-:使用cmd模式下载删除 mysql> drop database school; 此命名删除了school数据库.但如果school数据 ...

  4. MySQL删除数据库(DROP DATABASE语句)

    在 MySQL 中,当需要删除已创建的数据库时,可以使用 DROP DATABASE 或 DROP SCHEMA 语句.其语法格式为: DROP DATABASE [ IF EXISTS ] < ...

  5. mysql创建database_MySQL Create Database 创建数据库

    创建数据库 CREATE DATABASE 语法用于创建一个数据库. 语法: CREATE DATABASE db_name PHP MySQL 函数库中,mysql_query() 函数用于向 My ...

  6. Mysql创建数据库用户

    Mysql为数据库创建用户 通常情况下我们在编写代码的过程中(也就是在开发过程中),一直使用的是我们本地的mysql,而且用户都是root用户,最高权限的用户,但是我们如果在公司上班的时候,公司的领导 ...

  7. MySQL操作数据库--与MySQL零距离接触1-7

    第一章 1-7操作数据库 数据库是一个集合:表 索引等. MySQL语句规范: 关键字与函数名称全部大写 数据库名称.表名称.字段名称全部小写 SQL语句必须以分号结尾 语法结构:       {}: ...

  8. php mysql source_Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p data ...

  9. mysql ldap_OpenLDAP 使用MySQL作为数据库

    一.安装依赖包 yum -y install unixODBC.x86_64 unixODBC-devel.x86_64 libdbi-devel.x86_64 libdbi.x86_64 libdb ...

最新文章

  1. 生物信息大数据数据库(NCBI、EBI、UCSC、TCGA)
  2. 奥密克戎新毒株XE出现!传播速度快10%
  3. 最全三大框架整合(使用映射)——数据库资源文件jdbc.properties
  4. vue路由参数改变,组件数据没重新更新问题
  5. [置顶] ios 360度旋转效果demo
  6. 2021“数维杯”国际大学生数学建模竞赛A题思路
  7. 最新搜狗微信文章数据采集方法(无需代理)
  8. SQL分组排序再取前N条记录
  9. 拼图软件——texturepacker
  10. Mac下使用Eclipse读java源码
  11. 证件照制作相关的人像抠图/分割各家接口整理分析
  12. 关于vscode 中Live Server插件无法弹出Chrome浏览器问题
  13. 程序物语(五):经营自己的程序生涯
  14. 手把手教你用开源软件anki有效学习、长期记忆
  15. 济南申报高新技术企业不符合的条件
  16. 30 岁了, 现在开始努力,晚吗?
  17. clk子系统 - 代码分析
  18. android开发笔记之有用软件列表
  19. RGB565转换为RGB88,并作线性补偿
  20. 宅急送项目的第九天笔记!( 角色--权限管理)

热门文章

  1. 虎牙直播在AI实时剪辑技术上的创新实践
  2. 音视频技术开发周刊 | 228
  3. 网易工业级WebRTC应用实践深度解析
  4. 大牛书单 | 云原生技术领域好书推荐
  5. HTML 文件在PC移动端完美自适应布局的技巧
  6. 《直播疑难杂症排查》之三:首开慢
  7. 使用QUIC协议实现实时视频直播0卡顿
  8. 想成为BAT中的一员,你总要去学点什么(一)
  9. 大剑无锋之面试问到了Kafka???【面试推荐】
  10. Hive创表异常,FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.