已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package com hospital dao tools import java sql CallableStatement import java sql Connection import java sql DriverManager import java sql PreparedStatement import java sql ResultSet import java sql ResultSetMetaData import java sql SQLException import java sql Statement import java sql Types import java util ArrayList import java util HashMap import java util Iterator import org apache log4j Logger 数据库操作管理类 author Harlyhood public class DBManager Instance private static Logger logger Logger getLogger DBManager class Methods 数据库连接对象 private Connection con SQL 语句对象 private Statement stmt 带参数的 Sql 语句对象 private PreparedStatement pstmt 记录集对象 private ResultSet rs 数据连接管理 连接池对象 private DBConnectionManager dcm null 手动设置的连接参数 SuppressWarnings unused private static String DRIVER com microsoft sqlserver jdbc SQLServerDriver SuppressWarnings unused private static String URL jdbc sqlserver localhost 1433 database Hospital AI DB characterEnc oding gb2312 SuppressWarnings unused private static String USER NA sa SuppressWarnings unused private static String PASSWORD 默认构造 public DBManager 数据库连接初始化 得到一个默认的数据库连接 从 com hospital dao tools db properties 文件初始化 throws Exception private void getConnection logger info open 从默认的配置文件得到一个 数据库连接 获取一个连接 tb 池管理类的实例 dcm DBConnectionManager getInstance 得到一个数据库连接 con dcm getConnection mysql try con setAutoCommit false catch SQLException e e printStackTrace 从指定参数得到一个连接对象 param driver param url param user na param password throws Exception public void getConnection String driver String url String user na String password throws Exception try logger info open 从指定配置中得到一个 数据库连接 Class forName driver con DriverManager getConnection url user na password catch ClassNotFoundException ex logger info Error com hospital dao tools DBManager Method g etConnection Line 81 找不到类驱动类 driver throw ex catch SQLException ex logger info Error com hospital dao tools DBManager Method g etConnection Line 81 加载类 driver 时出现 SQLException 异常 throw ex 数据库操作方法 执行 SQL 语句操作 更新数据 无参数 param strSql SQL 语句 throws Exception public boolean executeUpdate String strSql throws SQLException getConnection getConnection DRIVER URL USER NA PASSWORD boolean flag false stmt con createStatement logger info 执行 SQL 语句操作 更新数据 无参 数 strSql try if 0 stmt executeUpdate strSql close DB Object flag true mit catch SQLException ex logger info Error DBManager Line126 执 行 SQL 语句操作 更新数据 无参数 strSql 失败 flag false con rollback throw ex return flag 执行 SQL 语句操作 更新数据 有参数 param strSql sql 指令 param prams 参数列表 return throws SQLException public boolean executeUpdate String strSql HashMap prams throws SQLException ClassNotFoundException getConnection getConnection DRIVER URL USER NA PASSWORD boolean flag false try pstmt con prepareStatement strSql setParamet pstmt prams logger info 执行 SQL 语句操作 更新数据 有参数 strSql if 0 pstmt executeUpdate close DB Object flag true mit catch SQLException ex logger info Error DBManager Line121 执 行 SQL 语句操作 更新数据 无参数 strSql 失败 flag false con rollback throw ex catch ClassNotFoundException ex logger info Error DBManager Line152 执 行 SQL 语句操作 更新数据 无参数 strSql 失败 参数设置类型错误 con rollback throw ex return flag 执行 SQL 语句操作 查询数据 无参数 param strSql SQL 语句 return 数组对象列表 throws Exception public ArrayList HashMap executeSql String strSql throws Exception getConnection getConnection DRIVER URL USER NA PASSWORD stmt con createStatement logger info 执行 SQL 语句操作 查询数据 strSql rs stmt executeQuery strSql mit if null rs return convertResultSetToArrayList rs close DB Object return null 执行 SQL 语句操作 查询数据 有参数 param strSql SQL 语句 param prams 参数列表 return 数组对象列表 throws Exception public ArrayList HashMap executeSql String strSql HashMap prams throws Exception getConnection getConnection DRIVER URL USER NA PASSWORD pstmt con prepareStatement strSql setParamet pstmt prams logger info 执行 SQL 语句操作 查询数据 strSql rs pstmt executeQuery mit if null rs return convertResultSetToArrayList rs return null 执行存储过程 查询数据 无参数 param procName 存储过程名称 return 数组列表对象 throws Exception public ArrayList HashMap executeProcedureQuery String procName throws Exception getConnection 获取连接 String callStr call procName 构造执行存储过 程的 sql 指令 CallableStatement cs con prepareCall callStr logger info 执行存储过程 查询数据 procName rs cs executeQuery mit cs close close DB Object return convertResultSetToArrayList rs 执行存储过程 查询数据 带参数 返回结果集合 param procName 存储过程名称 param parameters 参数对象数组 param al 数组列表对象 return 数组列表对象 throws Exception public ArrayList HashMap executeProcedureQuery String procName Object parameters throws Exception int parameterPoint 0 获取存储过程信息列表集合 ArrayList HashMap procedureInfo getProcedureInfo procName 获取存储过程的完全名称 String procedureCallName getProcedureCallName procName parameters length 获取连接对象 getConnection 初始化 存储过程 执行对象 CallableStatement cs con prepareCall procedureCallName 参数下标变量 int index 0 获取 存储过程信息列表集合的 迭代器 对象 Iterator HashMap iter procedureInfo iterator 遍历存储过程信息列表集合 while iter hasNext HashMap hm iter next parameterPoint 如果参数是输入参数 way 0 if hm get WAY equals 0 设置参数到 cs cs setObject parameterPoint parameters index 参数下标 1 index 释放这个对象 做为第二次使用 procedureInfo null logger info 执行存储过程 查询数据 procedureCallName rs cs executeQuery mit procedureInfo convertResultSetToArrayList rs cs close close DB Object return procedureInfo 执行存储过程 更新 查询数据 简单查询 非纪录集 返回输出参数 非纪录集 param procName 存储过程名称 param parameters 参数对象数组 param os 输出参数对象数组 return 输出参数对象数组 throws Exception public Object executeProcedureUpdate String procName Object parameters throws Exception logger info logger info Run executeProcedureUpdate 正在执行 存储过程 procName CallableStatement cs null Object returnVal null try 获取 存储过程 调用全名 String fullPCallName getProcedureCallName procName parameters length logger info Run executeProcedureUpdate 存储过程命令 fullPCallName 获取存储过程参数信息 ArrayList HashMap p Call Info List getProcedureInfo procName 获取连接 getConnection 创建 存储过程 执行对象 cs con prepareCall fullPCallName 数组下标 int index 1 输出参数下标 纪录 ArrayList outPutIndexList new ArrayList logger info Run executeProcedureUpdate 参数个数是 parameters length for HashMap tempHash p Call Info List if 0 equals tempHash get WAY 设置输入参数 cs setObject index parameters index 1 logger info Run executeProcedureUpdate 输入 Input 编号 index 值 parameters index 1 类型 parameters index 1 getClass else 注册输出参数 cs registerOutParameter index getDataType tempHash get TYPENAME toString 纪录输出参数的下标 outPutIndexList add index logger info Run executeProcedureUpdate 输出 OutPut 编号 index 值 parameters index 1 类型 parameters index 1 getClass index logger info Run executeProcedureUpdate 参数设置完毕 正 在执行中 执行 if cs execute returnVal new Object outPutIndexList size logger info Run executeProcedureUpdate 执行成功 取输 出参数的 返回值 for int i 0 i executeProcedureUpdate 返回 值 i 1 returnVal i mit 提交 catch Exception e logger info Run executeProcedureUpdate 执行失败 事 务回滚中 con rollback throw e logger info return returnVal 小工具 关闭数据对象 public void close DB Object logger info close 关闭连接对象 语句对象 记录集对象 if null rs try rs close catch SQLException ex rs null if null stmt try stmt close catch SQLException ex stmt null if null pstmt try pstmt close catch SQLException ex pstmt null if con null dcm freeConnection mysql con 设置 Sql 指令参数 param p stmt PreparedStatement param pramets HashMap private PreparedStatement setParamet PreparedStatement p stmt HashMap pramets throws ClassNotFoundException SQLException 如果参数为空 if null pramets 如果参数个数为 0 if 0 pramets size for int i 1 i pramets size i try 字符类型 String if pramets get i getClass Class forName java lang String p stmt setString i pramets get i toString 日期类型 Date if pramets get i getClass Class forName java sql Date p stmt setDate i java sql Date valueOf pramets get i toString 布尔类型 Boolean if pramets get i getClass Class forName java lang Boolean p stmt setBoolean i Boolean pramets get i 整型 int if pramets get i getClass Class forName java lang Integer p stmt setInt i Integer pramets get i 浮点 float if pramets get i getClass Class forName java lang Float p stmt setFloat i Float pramets get i 双精度型 double if pramets get i getClass Class forName java lang Double p stmt setDouble i Double pramets get i catch ClassNotFoundException ex throw ex catch SQLException ex throw ex return p stmt 转换记录集对象为数组列表对象 param rs 纪录集合对象 return 数组列表对象 throws Exception private ArrayList HashMap convertResultSetToArrayList ResultSet rs throws Exception logger info 转换记录集对象为数组列表对象 获取 rs 集合信息对象 ResultSetMetaData rsmd rs getMetaData 创建数组列表集合对象 ArrayList HashMap tempList new ArrayList HashMap HashMap tempHash null 填充数组列表集合 while rs next 创建键值对集合对象 tempHash new HashMap for int i 0 i rsmd getColumnCount i 遍历每列数据 以键值形式存在对象 tempHash 中 tempHash put rsmd getColumnName i 1 toUpperCase rs getString rsmd getColumnName i 1 第一个键值对 存储在 tempList 列表集合对象中 tempList add tempHash close DB Object 关闭相关链接 return tempList 返回填充完毕的数组列表集合对象 从数据库得到 tb 存储过程信息 param procName 存储过程名称 return 数组列表对象 throws Exception private ArrayList HashMap getProcedureInfo String procName throws Exception return this executeSql select Syscolumns isoutparam as Way systypes name as TypeName from sysobjects syscolumns systypes where systypes xtype syscolumns xtype and syscolumns id sysobjects id and sysobjects name procName order by Syscolumns isoutparam 从数据库得到存储过程参数个数 param procName 存储过程名称 return 数组列表对象 throws Exception SuppressWarnings unused private int getParametersCount String procName throws Exception int returnVal 0 for HashMap tempHas this executeSql select count as RowsCount from sysobjects syscolumns systypes where systypes xtype syscolumns xtype and syscolumns id sysobjects id and sysobjects name procName returnVal Integer parseInt tempHas get RO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品售后服务质量评估体系搭建模板
- 商业计划书制作工具含行业案例参考版
- 线缆整件代加工合同模板(3篇)
- 产品缺陷反馈及解决方案跟进表
- 2025年数字营销行业直播电商营销策略研究报告及未来发展趋势预测
- 2025年虚拟现实行业技术应用与虚拟体验研究报告及未来发展趋势预测
- 2025年物联网技术在物流行业中的应用与发展研究报告及未来发展趋势预测
- 2025年科技创新产业行业科技创新产业链发展与科技企业发展研究报告及未来发展趋势预测
- 2025年新能源行业太阳能光伏技术与可再生能源开发研究报告及未来发展趋势预测
- 食品安全保障行动承诺书4篇
- 后厨布置方案
- 企业营销道德与消费者权益保护
- 中国金币总公司招聘考试题
- 数字媒体技术职业生涯规划书
- 【室内设计手绘效果图表现技法】课件
- 增湿塔拆除安全施工方案
- 工程技术职业规划
- 父母赠予嫁妆协议
- 国画竹子课件
- 工程光学课件:光的干涉和干涉系统-
- 四体系条款对照表全套IATF16949、iSO9001、ISO14001、ISO45001
评论
0/150
提交评论