Java操作jdbc工具类
2017-12-19 11:39
423 查看
package com.cuihs.esb.db; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; /** * JDBC常用的一些操作 * * @author ZHAO * @date 2015年10月11日 */ public class JDBCUtils { /** * 初始值不赋,免得写死了 */ private static String driver_class; private static String url; private static String username; private static String password; /** * 因为只需要加载一次,所以使用静态代码块, 在类加载时就执行,把属性文件里面的值赋给属性 */ static { Properties pro = new Properties(); try { pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream( "jdbc.properties")); driver_class = pro.getProperty("jdbc.driver_class"); url = pro.getProperty("jdbc.url"); username = pro.getProperty("jdbc.username"); password = pro.getProperty("jdbc.password"); } catch (IOException e) { e.printStackTrace(); } } /** * JDBC获取连接操作 * * @return Connection对象 */ public static Connection getConnection() { Connection conn = null; try { // 加载驱动 Class.forName(driver_class); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * JDBC查询操作 */ public static List<Map<String, Object>> executeQuery(String sql, Object... parameters) { List<Map<String, Object>> table = new ArrayList<Map<String, Object>>(); ResultSet result = null; Connection conn = null; PreparedStatement pst = null; int len = parameters.length; try { conn = getConnection(); pst = conn.prepareStatement(sql); // 设置参数 if (parameters != null && len > 0) { for (int i = 0; i < len; i++) { pst.setObject(i + 1, parameters[i]); } } // 执行SQL指令并处理结果 result = pst.executeQuery(); if (result != null) { // 把查询到的结集转换成一张虚拟的表 java.sql.ResultSetMetaData rsd = result.getMetaData(); // 获得列数 int columnCounts = rsd.getColumnCount(); while (result.next()) { // 定义一个Map集合来存储每一行的数据 Map<String, Object> row = new HashMap<String, Object>(); // 遍历列赋值 for (int i = 1; i <= columnCounts; i++) { row.put(rsd.getColumnName(i), result.getObject(rsd.getColumnName(i))); } // 把每次得到的Map集合添加到table中 table.add(row); } } } catch (Exception e) { e.printStackTrace(); } finally { closeObject(result, pst, conn); } return table; } /** * JDBC增、删、改操作 * * @param sql * 用来接收调用处传入的SQL指令 * @param parameters * 接收调用处传入的与SQL指令一一对应的占位符 */ public static int executeEdit(String sql, Object... parameters) { int row = 0; int len = parameters.length; Connection conn = getConnection(); PreparedStatement pst = null; try { pst = conn.prepareStatement(sql); // 设置参数 if (parameters != null && len > 0) { for (int i = 0; i < len; i++) { pst.setObject(i + 1, parameters[i]); } } row = pst.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { closeObject(pst, conn); } return row; } /** * JDBC关闭对象,释放资源 */ public static void closeObject(Object... objects) { if (objects != null) { for (Object obj : objects) { try { if (obj instanceof PreparedStatement) { ((PreparedStatement) obj).close(); } if (obj instanceof ResultSet) { ((ResultSet) obj).close(); } if (obj instanceof Connection) { Connection conn = (Connection) obj; if(!conn.isClosed()) { conn.close(); conn = null; } } } catch (Exception e) { e.printStackTrace(); } } } } }
相关文章推荐
- 通用的Java MySQL JDBC主从分离操作工具类
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- java中JDBC基本操作的一个工具类,一些基本方法
- java操作ORACLE数据库工具类(JDBC)
- java操作ORACLE数据库工具类(JDBC)
- Java 工具类 - JDBC通用操作基类 BaseDao
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- java JDBC方式操作mysql数据库
- 170404、java版ftp操作工具类
- Java JDBC操作Image类型数据 添加和查询
- Java操作数据库JDBC
- java网络编程____httpclient工具类操作
- Java使用jdbc连接和操作mysql的例子
- java 操作Properties工具类
- Java jdbc操作oracle数据库的两种方式
- MVC 编程思想实例 (基于java,jdbc操作mysql数据库实现登陆注册)
- Java-JDBC操作
- JAVA日期操作运算工具类,简单实用
- Java操作数据库--JDBC
- java 中的 jdbc 实现 增删改查 操作