当前位置:首页 » 《资源分享》 » 正文

大数据—— 使用 Durid 进行 JDBC 连接_Vicky_Tang

21 人参与  2021年10月04日 17:43  分类 : 《资源分享》  评论

点击全文阅读


目录

一、Druid简介

二、Druid的优点

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

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

3.2 创建 JDBC 工具类

3.3 添加配置参数

3.4 测试代码


一、Druid简介

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

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

二、Druid的优点

  • 高性能。性能比dbcp、c3p0高很多。
  • 只要是jdbc支持的数据库,druid都支持,对数据库的支持性好。并且Druid针对oracle、mysql做了特别优化。
  • 提供监控功能。可以监控sql语句的执行时间、ResultSet持有时间、返回行数、更新行数、错误次数、错误堆栈等信息,来了解连接池、sql语句的工作情况,方便统计、分析SQL的执行性能

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

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

<!-- mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
</dependency>

<!-- druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.27</version>
</dependency>

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 (Exception e) {
            logger.error(e.getMessage(), e);
        }
    }

    public JDBCReadUtils() {
    }

    /**
     * 获取单例
     *
     * @return 单例
     */
    public static JDBCReadUtils getInstance(String url) {
        if (instance == null) {
            synchronized (JDBCReadUtils.class) {
                if (instance == null) {
                    instance = 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<Object[]> queryArrayList(String sql, Object... params) {
        List<Object[]> 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<Object[]> 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) {
            System.out.println(o[0] + "\t" + o[1] + "\t" + o[2] + "\t" + o[3]);
        }

    }
}


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/29396.html

添加  数据库  返回  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 远山长天青晓免费在线(乔意林景辞秦艺晚)_远山长天青晓免费在线
  • 老婆骂我废物,却又求我爱她小说免费试读_「秋芙然姜言铭言铭哥」小说精彩节选推荐
  • 完结文余留空念与微风最后结局列表_完结文余留空念与微风最后结局(傅时砚许初玖)
  • 全文此去经年人未还+后续+番外(沈青禾贺临渊)列表_全文此去经年人未还+后续+番外
  • [冷战两个月后,我选择跳楼回家]最新后续章节在线阅读_柳依依宋青雪儿人物羁绊章节精选
  • 女儿有钱后却转身起诉苦命妈妈全列表_女儿有钱后却转身起诉苦命妈妈全(陈雨晴林淑芬)
  • 带女儿离婚后,偏爱白月光的父子俩后悔了章节限时抢先看‌_凤遥免费试读
  • 女儿有钱后却转身起诉苦命妈妈(陈雨晴林淑芬)全书浏览_女儿有钱后却转身起诉苦命妈妈全书浏览
  • 完结文远山长天青晓+后续+结局列表_完结文远山长天青晓+后续+结局(乔意林景辞秦艺晚)
  • 此去经年人未还全书+后续(沈青禾霍沉洲)列表_此去经年人未还全书+后续(沈青禾霍沉洲)此去经年人未还全书+后续在线
  • 桃花依然笑春风全书+后续+结局(陆乘渊云梵音)列表_桃花依然笑春风(陆乘渊云梵音)桃花依然笑春风全书+后续+结局在线
  • 经年离歌愁未休,顾允廷宋卿落结局+番外完结完本_完本经年离歌愁未休,顾允廷宋卿落结局+番外完结

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1