oracle数据库的连接——封装工具类(代码)
为了连接oracle数据库的方便性,写了一个工具类,每次需要对数据库的操作时,只要调用该类,写好连接数据库的语句即可,这里是对整个需要访问数据库进行了封装。
package com.yc.api.jdbc.util;import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.apache.logging.log4j.LogManager;public class DBHelper {private static DataSource dataSource;static {try {//Class.forName(DRIVER_CLASS_NAME); // 1.加载驱动Properties props = new Properties();props.load(DBHelper.class.getClassLoader().getResourceAsStream("db.properties"));//使用连接池技术, 数据源DBCPdataSource = BasicDataSourceFactory.createDataSource(props);LogManager.getLogger().debug("加载数据库属性元素构建数据源成功...");} catch (Exception e) {LogManager.getLogger().error("加载数据库属性元素构建数据源!!!", e);}}/*** 建立连接* * @return*/public static Connection getConn() {Connection con = null;try {// 2.建立与数据库的 连接//使用连接池技术, 数据源DBCPcon = dataSource.getConnection();LogManager.getLogger().debug("数据库连接成功...");} catch (Exception e) {LogManager.getLogger().error("数据库连接失败!!!", e);}return con;}/*** 关闭操作* * @param con* 数据库连接* @param st* sql执行工具* @param rs* 返回结果集*/public static void close(Connection con, Statement st, ResultSet rs) {if (rs != null) {try {rs.close();LogManager.getLogger().debug("关闭结果集完成...");} catch (SQLException e) {LogManager.getLogger().error("关闭结果集失败!!!", e);}}if (st != null) {try {st.close();LogManager.getLogger().debug("关闭执行工具完成...");} catch (SQLException e) {LogManager.getLogger().error("关闭执行工具失败!!!", e);}}if (con != null) {try {con.close();LogManager.getLogger().debug("关闭数据库连接完成...");} catch (SQLException e) {LogManager.getLogger().error("关闭数据库连接失败!!!", e);}}}/*** * @param sql* 要执行的sql语句 insert, update, delete)* @param params* 执行sql语句需要的参数* @return 执行sql语句受影响的行数*/public static int doUpdate(String sql, Object... params) {Connection con = null;PreparedStatement st = null;int result = 0;try {con = getConn();LogManager.getLogger().debug("要执行sql语句:" + sql);st = con.prepareStatement(sql);setParams(st, params); // 设置参数LogManager.getLogger().debug("sql执行工具创建成功...");} catch (SQLException e) {LogManager.getLogger().error("sql执行工具创建失败!!!", e);}try {result = st.executeUpdate(); // 执行sql , 针对insert, delete,// update, 返回结果是受影响行数LogManager.getLogger().debug("插入数据成功,插入数据的条数是::" + result);} catch (SQLException e) {LogManager.getLogger().error("插入数据失败!!!", e);}finally{// 5.关闭连接DBHelper.close(con, st, null);}return result;}/*** * @param sql 要执行的sql语句* @param objs 执行sql语句需要的参数* @return 取出数据库的数据,每一条记录是一个map : key是字段名或字段别名(小写字母), value应对字段的值*/public static List
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
