Java Durid进行JDBC连接详解

网友投稿 509 2022-12-09

java Durid进行JDBC连接详解

目录一、Druid简介二、Druid的优点三、使用 Durid 进行 JDBC mysql 的连接3.1 添加 Druid 的依赖、数据库驱动3.2 创建 JDBC 工具类3.3 添加配置参数3.4 测试代码总结

一、Druid简介

Druid是阿里开源的数据库连接池,作为后起之秀,性能比dbcp、c3p0更高,使用也越来越广泛。

当然Druid不仅仅是一个连接池,还有很多其他的功能。

二、Druid的http://优点

高性能。性能比dbcp、c3p0高很多。

只要是jdbc支持的数据库,druid都支持,对数据库的支持性好。并且Druid针对oracle、mysql做了特别优化。

提供监控功能。可以监控sql语句的执行时间、ResultSet持有时间、返回行数、更新行数、错误次数、错误堆栈等信息,来了解连接池、sql语句的工作情况,方便统计、分析SQL的执行性能

三、使用 Durid 进行 JDBC MySQL 的连接

3.1 添加 Druid 的依赖、数据库驱动

mysql

mysql-connector-java

5.1.49

com.alibaba

druid

1.0.27

3.2 创建 JDBC 工具类

package cn.kgc.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.ArrayHandler;

import org.apache.commons.dbutils.handlers.ArrayListHandler;

import org.apache.log4j.Logger;

import java.io.File;

import java.io.FileInputStream;

import java.io.Serializable;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import java.util.Properties;

/**

* 【JDBC】业务工具类

*/

public class JDBCReadUtils implements Serializable {

private static Logger logger = Logger.getLogger(JDBCReadUtils.class);

/**

* 实现JDBCHelper的单例化

*/

private static JDBCReadUtils instance = null;

private QueryRunner runner = null;

/**

* 实现单例的过程中,创建唯一的数据库连接池

*/

private JDBCReadUtils(String url) {

Properties properties = new Properties();

try {

properties.load(new FileInputStream(new File(url)));

runner = new QueryRunner(DruidDataSourceFactory.createDataSource(properties));

} catch (vNzOkzBbException e) {

logger.error(e.getMessage(), e);

}

}

public JDBCReadUtils() {

}

/**

* 获取单例

*

vNzOkzBb * @return 单例

*/

public static JDBCReadUtils getInstance(String url) {

if (instance == null) {

synchronized (JDBCReadUtils.class) {

if (instance == null) {

instanchttp://e = new JDBCReadUtils(url);

}

}

}

return instance;

}

/**

* 查询(返回Array结果)

*/

private Object[] queryArray(String sql, Object... params) {

Object[] result = null;

try {

result = runner.query(sql, new ArrayHandler(), params);

} catch (SQLException e) {

logger.error(e.getMessage());

}

return result;

}

/**

* 查询(返回ArrayList结果)

*/

public List queryArrayList(String sql, Object... params) {

List result = null;

try {

result = runner.query(sql, new ArrayListHandler(), params);

} catch (SQLException e) {

logger.error(e.getMessage());

}

return result == null ? new ArrayList<>() : result;

}

/**

* 更新(包括UPDATE、INSERT、DELETE,返回受影响的行数)

*/

public int update(String sql, Object... params) {

int result = 0;

try {

result = runner.update(sql, params);

} catch (SQLException e) {

logger.error(e.getMessage());

}

return result;

}

}

3.3 添加配置参数

在 resource 目录中添加 jdbc.properties 文件并添加如下配置

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://singleNode:3306/spark?useSSL=false&createDatabaseIfNotExist=true&characterEncoding=UTF-8

username=root

password=root

3.4 测试代码

package cn.kgc;

import cn.kgc.utils.JDBCReadUtils;

import java.util.List;

public class Test {

public static void main(String[] args) {

List result = JDBCReadUtils.getInstance("C:\\Users\\Administrator\\Desktop\\总部实战课\\spark\\project\\src\\main\\resources\\jdbc.properties")

.queryArrayList("select * from entity_question_number_accuracy limit 10;");

for (Object o[] : result) {

http:// System.out.println(o[0] + "\t" + o[1] + "\t" + o[2] + "\t" + o[3]);

}

}

}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于springboot activiti 配置项解析
下一篇:Java数据结构与算法之稀疏数组与队列深入理解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~