JDBC数据库操作代码模版

package com.oolong.util;

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.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class DBHelper { private String driverName = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/hrms?useSSL=true";
private String userName = "root";
private String password = "1234";
private Connection conn; private static DBHelper dbHelper; public static Connection getConnection(){
if (dbHelper == null) {
DBHelper.dbHelper = new DBHelper();
}
return dbHelper.conn;
} private DBHelper() {
try {
Class.forName(driverName);
this.conn = DriverManager.getConnection(url, userName, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} public static int executeUpdate(String sql, String[] param) {
Connection conn = null;
PreparedStatement pst = null;
int res = 0; try{
conn = DBHelper.getConnection();
pst = conn.prepareStatement(sql); for (int i = 0; i < param.length; i++) {
pst.setString(i+1, param[i]);
} res = pst.executeUpdate(); pst.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return res;
} public static List<Map<String, Object>> executeQuery(String sql) {
return executeQuery(sql, new String[0]);
} public static List<Map<String, Object>> executeQuery(String sql, String[] param) {
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
List<Map<String, Object>> resut = new ArrayList<>();
Map<String, Object> map = null;
try{
conn = DBHelper.getConnection();
pst = conn.prepareStatement(sql); for (int i = 0; i < param.length; i++) {
pst.setString(i+1, param[i]);
} rs = pst.executeQuery(); ResultSetMetaData rsm = rs.getMetaData();
String[] columns = new String[rsm.getColumnCount()]; for (int i = 0; i < rsm.getColumnCount(); i++) {
columns[i] = rsm.getColumnName(i + 1);
} rs.beforeFirst(); while(rs.next()) {
map = new HashMap<>();
for(String col : columns) {
map.put(col, rs.getObject(col));
}
resut.add(map);
}
rs.close();
pst.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return resut;
}
}

JDBC——DBHelper代码模版的更多相关文章

  1. JDBC——数据库连接池以及JDBC代码模版模版

    该代码模版由三部分组成,一个是数据库连接池,一个是数据库常用操作的模版抽象,还有一个是重写的连接对象,主要重写关闭连接的方法,将其改为释放到连接池. OolongConnectionPool.java ...

  2. 完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络]

    完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络] 地址:http://blog.csdn.net/qq_35101189/article/details/53729720?ref=m ...

  3. jdbc封装代码

    jdbc封装代码 package jdbcUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...

  4. 【IDEA】(2)---MAC代码模版

    IDEA(2)-MAC代码模版 IDEA提供了许多的自带代码模版,这些模版主要是对于我们经常开发用到的代码制作成一个模版,比如for循环,这个是经常会用到的代码,如果没有代码模版,我们需要一个一个手动 ...

  5. JDBC——Java代码与数据库链接的桥梁

    常用数据库的驱动程序及JDBC URL: Oracle数据库: 驱动程序包名:ojdbc14.jar 驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL:j ...

  6. java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  7. 【转】Java开发中JDBC连接数据库代码和步骤总结

    (转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个 ...

  8. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

  9. 完整java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

随机推荐

  1. Linux工具- Sysdig

    Sysdig 是一个超级系统工具,比 strace.tcpdump.lsof 加起来还强大.可用来捕获系统状态信息,保存数据并进行过滤和分析.使用 Lua 开发,提供命令行接口以及强大的交互界面. 使 ...

  2. shell中sed的简单使用

    sed命令行格式为:         sed [-nefri]  ‘command’  输入文本/文件        常用选项:        -n∶取消默认的输出,使用安静(silent)模式.在一 ...

  3. Delphi MSCom安装

  4. DataGrip导出查询结果数据

    1 按钮 2 选择保存位置即可

  5. SQL语句复习【专题九】

    SQL语句复习[专题九] 视图:View视图的概念:视图是从若干基本表或其他视图构造出来的表.在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据在用户使用视 ...

  6. resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致

    1.1.1.1.      步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启  其他地方可能用到 一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用 ...

  7. 论文笔记:Integrated Object Detection and Tracking with Tracklet-Conditioned Detection

    概要 JiFeng老师CVPR2019的另一篇大作,真正地把检测和跟踪做到了一起,之前的一篇大作FGFA首次构建了一个非常干净的视频目标检测框架,但是没有实现帧间box的关联,也就是说没有实现跟踪.而 ...

  8. 并发编程:生产消费模型、死锁与Rlock、线程、守护线程、信号量、锁

    一.生产者消费者模型1 二.生产者消费者模型2 三.守护线程 四.常用方法 五.启动线程的另一种方式 六.锁 七.锁死 八.死锁 九.单个锁能不能死锁 十.信号旗 一.生产者消费者模型1 import ...

  9. Linux基础命令02

    常用的一些命令选项 向网络发送icmp检测主机是否在线 ping 指定发送包数量 ping -c windows系统中是ping -t不间断刷包 比如ping百度,ping不同,一直卡在这里,加了-w ...

  10. Linux ping route nslookup ifconfig arp traceroute

    route -n  查看默认网关 ping  -c 包个数 ping -s 包大小 host  目标主机 主机解析 nslookup  目标主机 arp -an 查看arp arp -s IP地 MA ...