为什么80%的码农都做不了架构师?>>>   

接上面一片博文,自己弄了一个简单的数据库操作工具类:

/** 创建日期 2014-6-5** TODO 要更改此生成的文件的模板,请转至* 窗口 - 首选项 - Java - 代码样式 - 代码模板*/
package com.excellence.explatform.proxy.util;import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;/*** @author pengsy* * TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板*/
public final class DBUtil {/*** 获取数据库连接* * @return* @throws Exception*/public static Connection getConnection() throws Exception {Context context = null;DataSource dataSource = null;try {context = new InitialContext();try{//TOMCAT JDK1.6dataSource = (DataSource) context.lookup("java:comp/env/jdbc/exoa");}catch(Exception E){E.printStackTrace();}if(dataSource == null){//WAS JDK1.4dataSource = (DataSource) context.lookup("jdbc/exoa");}if (dataSource == null) {System.err.println("打开数据库连接出错!!!");return null;}return dataSource.getConnection();} catch (Exception e) {e.printStackTrace();return null;}}/*** 执行sql语句* @param sql* @param params* @return* @throws Exception*/public static boolean executeSql(String sql, ArrayList params)throws Exception {Connection conn = getConnection();PreparedStatement ps = null;if(conn == null){return false;}try{ps = conn.prepareStatement(sql);for (int i = 0; i < params.size(); i++) {Object param = (Object) params.get(i);if(param instanceof String){ps.setString((i+1),(String) param);}else if(param instanceof Date){ps.setDate((i+1),(Date) param);}else{ps.setString((i+1),param == null ? "" : param.toString());}}return ps.execute();}catch(Exception e){e.printStackTrace();return false;}finally{if(ps != null ){ps.close();}conn.close();}}public static Map queryRecordInfo(String sql, ArrayList params)throws Exception {Connection conn = getConnection();PreparedStatement ps = null;ResultSet rs = null;Map resultMap = null;if(conn == null){return null;}try{ps = conn.prepareStatement(sql);for (int i = 0; i < params.size(); i++) {Object param = (Object) params.get(i);if(param instanceof String){ps.setString((i+1),(String) param);}else if(param instanceof Date){ps.setDate((i+1),(Date) param);}else{ps.setString((i+1),param == null ? null : param.toString());}}rs = ps.executeQuery();ResultSetMetaData metaData = ps.getMetaData();if(rs != null){resultMap = new HashMap();while(rs.next()){for(int i = 0 ; i < metaData.getColumnCount();i++){resultMap.put(metaData.getColumnName(i+1),rs.getObject(i+1));}break;}}}catch(Exception e){e.printStackTrace();}finally{if(rs != null ){rs.close();}if(ps != null ){ps.close();}conn.close();}return resultMap;}
}

转载于:https://my.oschina.net/psuyun/blog/273885

一个简单的数据库工具类相关推荐

  1. wsm-lucene 一个简单的Lucene工具类

    代码地址: https://gitee.com/shaojiepeng/wsm-lucene wsm-lucene 一个简单的Lucene工具类,通过注释的方式来配置构建索引的字段.提供新建索引.查找 ...

  2. 使用Python 封装一个简单的Mysql工具类

    pymysql操作mysql,虽然简单,但每次都要链接数据库,获取游标,关闭游标,关闭链接.这些操作无技术含量,还要重复编写!!想一想不如封装一个DBUtil,来提高开发效率. 要编写工具类首先要把公 ...

  3. php 一个简单正则表达式,PHP中正则表达式回顾(3)--编写一个简单的正则表达式工具类...

    跟着视频的讲解,也亲手敲了这么一个正则表达式的类,感觉很不错,真是温故而知新,本来想把注释写的逼格高一点的,今天晚了有点累,先简单的写一下,有时间了再完善完善. class regexTool{ // ...

  4. python调用公共方法_common: 这是一个Python的公共工具类,集成了各种主要的python常用方法...

    common 介绍 这是一个Python的公共工具类,集成了各种主要的python常用方法. 本人是做java开发的,学习python很多情况下是把他当做一个脚本来使用,在使用的过程中,发现很多的功能 ...

  5. SqlHelper操纵数据库工具类

    SqlHelper操纵数据库工具类 该工具类是SqlHelper的基础版本,将整个类做成静态类,这样可能很难应付高并发的数据库操作,不过这个问题是能够解决的,通过创建SqlHelper对象,将成员变量 ...

  6. 开发自己的框架——(二)数据库工具类的封装

    为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高. 首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让 ...

  7. java 类确定运行时间_java回调函数实例:实现一个测试函数运行时间的工具类

    下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: public class TestObject { /** * 一个用来被测试的 ...

  8. calcite连接mysql_如何使用Calcite实现一个简单的数据库

    说道Calcite你可能有些陌生, 但提及Hive.Kylin.Apache Drill.Flink等一定不会陌生,这些都是在我们日常工作中经常用到的,如上这些都是基于Calcite实现查询引擎,还有 ...

  9. 开始做一个简单的记账工具

    用VScode做一个简单的记账工具 内容保存在 https://leonchan0608.coding.net/public/bookkeeping/bookkeeping/git 下班学习,奋斗一年 ...

最新文章

  1. java ocr识别pdf_如何知道PDF是否仅包含图像还是已经过OCR扫描以进行搜索?
  2. 大数据系列文章-Hadoop的HDFS读写流程(二)
  3. Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压...
  4. maven安装_如何从官网下载Maven与安装Maven
  5. 阮一峰react demo代码研究的学习笔记 - demo 6 debug - how check works
  6. figma下载_在Figma上进行原型制作的各种触发选项
  7. linux: sort用法
  8. 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》一第6章 让场景更逼真——光照效果...
  9. 系统中多种隐藏超级用户方法
  10. 怎么实现两周联动加减速_LOL:野辅联动成版本主旋律,三大辅助对线游走兼备...
  11. 使用UWP人脸检测API在WPF中进行人脸检测
  12. 值类型与引用类型传递的艺术
  13. 机器学习之概念漂移-concept drift
  14. 腾讯广告算法大赛 | 萌新粉丝投稿讲述数据竞赛小白观赛心得
  15. 移动端真机调试的两种方法
  16. 利用PlayerPrefs存储数据
  17. shell 计算代码运行时间
  18. arduino 下载 https://downloads.arduino.cc/packages/package_index.json error
  19. android sdk mac 环境变量,Mac 下的SDK环境变量配置
  20. 顾客细分(Customer Segmentation)(转载)

热门文章

  1. php网页输入框,php网页的输入框显示中文异常
  2. Linux创建进程必须fork么,Linux - fork() 创建进程
  3. Spring Boot + JPA +MySQL 数据操作及示例环境搭建(手动建表建类)
  4. 第2章[2.5] Ext JS组件、容器与布局
  5. DQL 学习3 -- Administration Methods
  6. linux mkdir 参数,Linux基础命令之 mkdir
  7. java语言的技术可行性_可行性分析的主要内容( )。
  8. 精品网站 mysql,【网址导航系统】基于PHP+MYSQL开发的开源网站分类目录管理系统...
  9. CodeForces - 589B
  10. Docker 私有仓库registry