一个简单的数据库工具类
为什么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
一个简单的数据库工具类相关推荐
- wsm-lucene 一个简单的Lucene工具类
代码地址: https://gitee.com/shaojiepeng/wsm-lucene wsm-lucene 一个简单的Lucene工具类,通过注释的方式来配置构建索引的字段.提供新建索引.查找 ...
- 使用Python 封装一个简单的Mysql工具类
pymysql操作mysql,虽然简单,但每次都要链接数据库,获取游标,关闭游标,关闭链接.这些操作无技术含量,还要重复编写!!想一想不如封装一个DBUtil,来提高开发效率. 要编写工具类首先要把公 ...
- php 一个简单正则表达式,PHP中正则表达式回顾(3)--编写一个简单的正则表达式工具类...
跟着视频的讲解,也亲手敲了这么一个正则表达式的类,感觉很不错,真是温故而知新,本来想把注释写的逼格高一点的,今天晚了有点累,先简单的写一下,有时间了再完善完善. class regexTool{ // ...
- python调用公共方法_common: 这是一个Python的公共工具类,集成了各种主要的python常用方法...
common 介绍 这是一个Python的公共工具类,集成了各种主要的python常用方法. 本人是做java开发的,学习python很多情况下是把他当做一个脚本来使用,在使用的过程中,发现很多的功能 ...
- SqlHelper操纵数据库工具类
SqlHelper操纵数据库工具类 该工具类是SqlHelper的基础版本,将整个类做成静态类,这样可能很难应付高并发的数据库操作,不过这个问题是能够解决的,通过创建SqlHelper对象,将成员变量 ...
- 开发自己的框架——(二)数据库工具类的封装
为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高. 首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让 ...
- java 类确定运行时间_java回调函数实例:实现一个测试函数运行时间的工具类
下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: public class TestObject { /** * 一个用来被测试的 ...
- calcite连接mysql_如何使用Calcite实现一个简单的数据库
说道Calcite你可能有些陌生, 但提及Hive.Kylin.Apache Drill.Flink等一定不会陌生,这些都是在我们日常工作中经常用到的,如上这些都是基于Calcite实现查询引擎,还有 ...
- 开始做一个简单的记账工具
用VScode做一个简单的记账工具 内容保存在 https://leonchan0608.coding.net/public/bookkeeping/bookkeeping/git 下班学习,奋斗一年 ...
最新文章
- java ocr识别pdf_如何知道PDF是否仅包含图像还是已经过OCR扫描以进行搜索?
- 大数据系列文章-Hadoop的HDFS读写流程(二)
- Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压...
- maven安装_如何从官网下载Maven与安装Maven
- 阮一峰react demo代码研究的学习笔记 - demo 6 debug - how check works
- figma下载_在Figma上进行原型制作的各种触发选项
- linux: sort用法
- 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》一第6章 让场景更逼真——光照效果...
- 系统中多种隐藏超级用户方法
- 怎么实现两周联动加减速_LOL:野辅联动成版本主旋律,三大辅助对线游走兼备...
- 使用UWP人脸检测API在WPF中进行人脸检测
- 值类型与引用类型传递的艺术
- 机器学习之概念漂移-concept drift
- 腾讯广告算法大赛 | 萌新粉丝投稿讲述数据竞赛小白观赛心得
- 移动端真机调试的两种方法
- 利用PlayerPrefs存储数据
- shell 计算代码运行时间
- arduino 下载 https://downloads.arduino.cc/packages/package_index.json error
- android sdk mac 环境变量,Mac 下的SDK环境变量配置
- 顾客细分(Customer Segmentation)(转载)
热门文章
- php网页输入框,php网页的输入框显示中文异常
- Linux创建进程必须fork么,Linux - fork() 创建进程
- Spring Boot + JPA +MySQL 数据操作及示例环境搭建(手动建表建类)
- 第2章[2.5] Ext JS组件、容器与布局
- DQL 学习3 -- Administration Methods
- linux mkdir 参数,Linux基础命令之 mkdir
- java语言的技术可行性_可行性分析的主要内容( )。
- 精品网站 mysql,【网址导航系统】基于PHP+MYSQL开发的开源网站分类目录管理系统...
- CodeForces - 589B
- Docker 私有仓库registry