数据库连接工具类

Oracle数据库db.prorerties配置文件以及数据库连接工具类 db.properties的配置文件:   driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521:XE username=u08 password=u08   工具类 private static String driver; private static String url 阅读详情

DataBaseUtil.properties

##choose which database
datatype=mysql
##oracle
oracleDriver=oracle.jdbc.driver.OracleDriver
oracleUrl=jdbc:oracle:thin:@127.0.0.1:1521:xe
oracleUser=scott
oraclePassword=tiger
##mysql
mysqlDriver=com.mysql.jdbc.Driver
mysqlUrl=jdbc:mysql://127.0.0.1:3306/bjsxt20151014
mysqlUser=root
mysqlPassword=123456

DBUtils.java

import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class DBUtils {
    //获取数据库配置信息
        private static Properties properties = new Properties();
        //定义JDBC需要的参数
        private static String datatype = null;
        private static String driver = null;
        private static String url = null;
        private static String user = null;
        private static String password = null;

        static {
            //可以保证只加载一次,而且调用的时候肯定已经加载完成
            try {
                //加载配置文件
                properties.load(DBUtils.class.getClassLoader().getResourceAsStream("DataBaseUtil.properties"));
                //获取配置文件里的配置信息
                datatype = properties.getProperty("datatype");
                driver = properties.getProperty(datatype + "Driver");
                url = properties.getProperty(datatype + "Url");
                user = properties.getProperty(datatype + "User");
                password = properties.getProperty(datatype + "Password");
                //加载驱动
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        /**
         * 获取连接
         * @return
         */
        public static Connection getConnection() {
            Connection connection = null;
            try {
                connection = DriverManager.getConnection(url, user, password);
            } catch (SQLException e) {
                System.out.println("DataBaseUtil.getConnection()" + url + ":" + user + ":" + password);
                e.printStackTrace();
            }
            return connection;
        }

        /**
         * 关闭连接
         * @param connection
         */
        public static void closeConnection(Connection connection) {
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

        /**
         * 获取清单对象
         * @param connection
         * @return
         */
        public static Statement getStatement(Connection connection) {
            Statement statement = null;
            try {
                //判断连接是否为空 如果为空创建一个新的
                if (connection == null) {
                    connection = getConnection();
                }
                statement = connection.createStatement();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return statement;
        }

        /**
         * 关闭清单对象
         * @param statement
         */
        public static void closeStatement(Statement statement) {
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

        /**
         * 获取预处理清单对象
         * @param connection
         * @param sql
         * @return
         */
        public static PreparedStatement getPstmt(Connection connection, CharSequence sql) {
            PreparedStatement preparedStatement = null;
            try {
                //判断连接是否为空 如果为空创建一个新的
                if (connection == null) {
                    connection = getConnection();
                }
                preparedStatement = connection.prepareStatement(sql.toString());
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return preparedStatement;
        }

        /**
         * 关闭结果集合
         * @param resultSet
         */
        public static void closeResultSet(ResultSet resultSet) {
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

        /**
         * 释放所有的资源
         * @param connection
         * @param statement
         * @param resultSet
         */
        public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
            closeResultSet(resultSet);
            closeStatement(statement);
            closeConnection(connection);
        }

        /**
         * 将结果集合里面的数据存放至容器
         * @param resultSet
         * @param clazz
         * @return
         */
        public static <T> List<T> resultset2list(ResultSet resultSet, Class<T> clazz) {
            //声明一个容器
            List<T> list = new ArrayList<T>();
            try {
                //将结果集中的数据注入给对象(遍历)
                while (resultSet.next()) {
                    //确定要注入值的对象
                    T bean = clazz.getConstructor(null).newInstance(null);
                    //获取列的名字(属性的名字和列的名字正好对应)
                    Field[] dfs = clazz.getDeclaredFields();
                    //开始遍历属性
                    for (int i = 0; i < dfs.length; i++) {
                        //获取当前属性
                        Field field = dfs[i];
                        //获取属性的名字
                        String fname = field.getName();
                        //获取属性对应的值
                        Object fvalue = resultSet.getObject(fname);
                        //将值注入给对象(因为属性是私有的,所以这种方式被否决)
                        //                  field.set(bean, fvalue);
                        //获取属性对应的set方法
                        String methodName = "set" + fname.toUpperCase().substring(0, 1) + fname.substring(1);
                        //获取对应的方法
                        Method method = clazz.getMethod(methodName, field.getType());
                        //执行方法
                        method.invoke(bean, fvalue);
                    }
                    //将对象存放至List
                    list.add(bean);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            //返回数据
            return list;
        }
}
连接、关闭数据库工具类(封装好的工具类) 连接、关闭数据库工具类(封装好的工具类) 步骤(1) package com.util; import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import j... 阅读详情

相关推荐

数据库连接池技术与 Druid 连接工具类实现

1.1. 什么是数据库连接池数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个当数据库连接空闲时间太长,超过了规定的最长空闲时长,就把这个连接释放掉这样做是为了防止连接一直占着却没人用 ,要是不释放,就会出现连接浪费,也就是数据库连接遗漏的问题。通过这种方式,能大大提升对数据库操作的速度和效率。

艺杯羹的博客 1328

Java 运行时发生 NoClassDefFoundError: Could not initialize class 的解决方法

在编译时没有异常的程序,在运行时抛出异常称 NoClassDefFoundError: Could not initialize class {类名}。 根据 Java 官方文档,NoClassDefFoundError 是由于 JVM 或 ClassLoader 实例为了调用某个类的方法或 new 类的新的实例,而试图加载该类的定义时,却无法找到其定义,而抛出的异常。需要注意,对于抛出该异常的情况,试图找到的类的定义在编译时存在,只是在运行时不知所踪。 NoClassDefFoundError 总的来

亦碎流年的博客 11万+

java连接mysql数据库的三个不同的工具类

收集了3个不同的连接数据库的类,很经典的封装好的jdbc工具类

Java | 详解 Java连接MySQL、编写JdbcUtils工具类、使用数据库连接池、使用JavaTemplate

使用java连接mysql数据库进行增删改查、编写JdbcUtils工具类、使用数据库连接池C3P0以及Druid、使用JavaTemplate

鷾 1万+

Java连接数据库的工具类

本资源是java开发的常用工具类,包括01.DTD约束文档,02.Schema约束文档,c3p0,commons-dbutils-1.6,commons-io-2.4,commons-pool-1.5.6,mysql-connector-java-5.1.37

Unity安卓打包实战:SDK与JDK配置全攻略

本文详细介绍了Unity安卓打包过程中SDK与JDK的配置方法,包括工具下载、安装步骤、环境变量设置及常见错误排查。通过实战指南帮助开发者快速完成Unity安卓打包环境搭建,提升开发效率。

weixin_30338481的博客 415

java编写连接数据库的工具类(DBUtils)

连接数据库工具类的编写 1,工具类介绍 本工具类主要对连接数据库的操作进行了简化封装,避免代码的冗余书写,同时也加入了连接池,减少了因为开启和关闭连接带来的资源浪费问题。 主要封装功能有:注册驱动、获取连接、释放资源、(增删改)命令封装、查询命令封装,事务处理等。 2,工具类代码 public class DBUtils_Druid { //创建线程池 private static DataSource dataSource=null; //创建线程局部变量 private

qq_43804570的博客 2350

时间序列:R语言ARMA-GARCH模型

ARMA: #读入数据,并绘制时序图 d<-read.table("C:/Users/haha/Desktop/R/zuoye/1.txt") x<-ts(log(d),start = 1) 1: x的时间序列图: x<-ts(log(d),start = 1) plot(x) 2: 从上图可以看出x.dif序列值在0的附近波动,没...

1万+

常用的数据库连接工具及其应用场景解析

数据库连接工具是现代数据管理的核心组件,本文系统梳理了主流工具及其适用场景。GUI工具(如DBeaver、Navicat)适合可视化操作,CLI工具(如psql)适用于脚本自动化,API/驱动(如JDBC)服务于编程集成,连接池(如HikariCP)优化高并发性能。不同场景推荐不同工具:开发调试首选DBeaver/MySQL Workbench,生产管理推荐Navicat/SSMS,多数据库环境适合DBeaver。选择时需考虑数据库兼容性、用户技能、功能需求和成本因素。未来趋势将向云集成、AI辅助和轻量化方

专注于与编程相关的知识内容分享 4806

手把手解决AutoDock安装那些坑:从autogrid报错到.map文件生成(Win10/11环境)

本文详细解析了在Win10/11环境下安装AutoDock时遇到的常见问题,特别是autogrid报错和.map文件生成失败的情况。通过实战验证的解决方案,包括环境变量设置、Python版本管理、文件权限调整等,帮助用户顺利完成安装并提升分子对接研究效率。

weixin_42548888的博客 198

机器人手眼标定快速精度验证方法

机器人手眼标定快速精度验证方法

laoli_的博客 1万+

JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java

JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class ShowRs extends HttpServlet { @Override prote...

Xenoverse的博客 649

NR RRC协议(2)---RRC连接建立流程

RRC连接建立目的是建立SRB1 RRC连接建立还用于将初始NAS消息从UE传送到网络 RRC连接的初始阶段期间,不激活AS安全性 RRC连接建立由UE侧发起

crg2046的博客 1957

编写DBUtil连接数据库工具类

编写DBUtil连接数据库工具类 db.properties文件 jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.username=scott jdbc.password=tiger jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl DBUtil工具类 package com.abc.web.util;...

qq_43543543的博客 882

2026最新 OpenClaw 手机端部署与实战:旧手机秒变 AI 智能终端(Android/iOS 双平台全覆盖)

OpenClaw 是2026年 GitHub 爆火的开源自托管 AI 执行网关,前身是 Clawdbot / Moltbot,主打“一句话让 AI 帮你完成真实操作”,核心能力包括发消息、整理文件、控制设备、自动化任务等,区别于普通对话式 AI,它能将 AI 指令转化为实际行动。无需高配置设备,无需专业技术,旧手机就能变身随身 AI 助手,既能实现自动化办公、生活便捷,又能保障数据隐私,还能体验极客玩法,这正是开源技术的魅力。# 初始化配置(按提示操作,配置 AI 模型 API Key)

wohaiweifaju的博客 5645

第二章-Ethernet/IP基本概念

在I/O连接中,一旦连接建立,就不会有请求-响应数据,只会按照连接建立时指定的生产触发器所确定的时间间隔生产和消耗带有ConnectionID的数据。连接是通过连接管理器对象的Forward请求服务建立的,ForwardOpen请求包含所有连接参数,包括传输类、生产触发器、定时信息、电子密钥和连接ID。I/O适配器:I/O适配器从I/O扫描器接收隐式通信连接请求,然后以请求的速率生成I/O数据。I/O扫描器:启动与I/O适配器的隐式通信,需要处理连接的配置以及如何配置适配器。扫描器还支持启动显式报文。

_Nooice的博客 1233

Jdbc数据库的连接工具类

用java连接上MySQL数据库。这里写的是连接数据库的工具类。

旺仔爱编程 3302

二、FM1288调试方案-工具软件使用

分析音频数据的软件需要满足以下几点:1、能打开原始pcm音频文件;2、基本的音频播放软件的操作;3、能查看分析音频数据的频率成分;4、能查看分析音频音量幅度;5、能完成基本音频处理:降噪、音量增幅限幅、滤波和均衡;

优快云mianfeixiazai001的博客 1294

JDBC连接数据库工具类及连接Access数据库示例

1、JDBC连接各个数据库时,存在很多相同的代码部分,把这些部分单独写在一个类里面,根据传入的driver、url、user、password这些参数连接到特定的数据库,工具类代码如下: package mine.util.database; import java.sql.Connection; import java.sql.DriverManager; import java.s

Touch_2011的专栏 8770

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

安卓mysql数据库连接工具类_自定义JDBC工具类 连接MySQL数据库

需要用到的jar包:mysql-connector-java-5.1.43-bin.jar1.把连接数据库需要的信息,都保存在一个文件中,这个文件是一个properties文件driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/javaee1707?useSSL=trueuser=rootpassword=123456代码实现pu...

weixin_39850365的博客 419

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

开源mysql连接工具类_非常好获得数据库连接工具类

获得连接工具类:package com.bpcrm.kevin.util.DB_utill.simple_connection;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statemen...

weixin_36111033的博客 530

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数据库连接—jdbc数据库连接工具类

由于个人学习时间过长或由于其他原因,我可能会忘记一些内容一方不时之用 该代码为jdbcUtils源码 个人书写可能有些问题,该文章仅限参考 数据库连接 jdbc数据库连接 1、先导入架包 在对后台进行数据操作时,我们就需要用到数据库连接,我们需要用到数据库驱动包 2、为了便于使用数据库连接,就写成一个工具类 public class jdbcUtil { private static S...

qq_45579865的博客 438

数据库连接JDBC工具类

这是我在连接数据库的时候,自己写的简单的数据库连接工具类,里面的几个常量其实本应放到枚举类中的,但是偷懒了, 放到这里希望可以帮到大家,以后也会继续完善。package com.blueZhang; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public

Blue的博客 1171

java连接数据库工具类_java连接数据库的工具类

声明以下代码并非本人所写,也不是转载。只是参与项目中,总结出来的而已。public class DBHelper {private final static Log log = LogFactory.getLog(DBHelper.class.getClass());//获得properties文件的各个参数private static String driver = Utils.getStrin...

weixin_39866774的博客 222

安卓mysql数据库连接工具类_mysql连接数据库工具类

参考链接import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/*** 连接数据库的工具类,被定义成不可继承且是私有访问** @author lanp* @sin...

weixin_31342203的博客 863
上一篇: HTTP协议
下一篇: Servlet获取Request和Response
sunbufu
博客等级 码龄11年 17粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值