首页 > 数据库 >Java 程序连接数据库服务端程序的助手类

Java 程序连接数据库服务端程序的助手类

时间:2023-04-13 18:33:05浏览次数:32  
标签:return 数据库 程序 connection Java 服务端

username = 用户名
password = 密码
jdbcURL = jdbc:mysql://IP地址:端口号/数据库名?useUnicode=true&useSSL=false&amp&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
jdbcDriver = com.mysql.cj.jdbc.Driver

  

 

import lombok.extern.slf4j.Slf4j;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * Java 程序与数据库服务端程序的连接句柄
 *
 * @作者 hapday
 * @author hapday
 * @时间 2023-04-13
 * @time 2023-04-13
 * @起始于 0.1.0
 * @since 0.1.0
 */
@Slf4j
public class JavaDatabaseConnectivityHandle {

    /**
     * 获取 Java 程序与数据库服务端程序的连接
     * @return 【Java 程序与数据库服务端程序的连接】对象
     *
     * <note>
     *     前置条件:在【类路径(classpath)】目录中增加 jdbc.properties 配置文件。
     * </note>
     *
     * @作者 hapday
     * @author hapday
     * @时间 2023-04-13
     * @time 2023-04-13
     * @起始于 0.1.0
     * @since 0.1.0
     */
    public Connection getDatabaseConnection () {
        InputStream databaseConfigInputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties") ; // 从【类路径】中获取配置文件
        Properties databaseConfigProperties = new Properties();
        try {
            databaseConfigProperties.load(databaseConfigInputStream);   // 加载【数据库】配置文件
        } catch (IOException e) {
            log.error("加载【数据库配置文件】失败!", e);

            return null;
        }

        String username = databaseConfigProperties.getProperty("username");
        String password = databaseConfigProperties.getProperty("password");
        String jdbcURL = databaseConfigProperties.getProperty("jdbcURL");
        String jdbcDriver = databaseConfigProperties.getProperty("jdbcDriver");

        /**
         * 第一步:注册驱动
         */
        try {
            Class.forName(jdbcDriver);
        } catch (ClassNotFoundException e) {
            log.error("没有找到数据库的驱动!", e);

            return null;
        }

        /**
         * 第二步:获取连接
         */
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(jdbcURL, username, password);
        } catch (SQLException e) {
            log.error("获取 Java 程序与数据库服务端程序的连接对象 - 失败!", e);

            return null;
        }

        return connection;
    } ;

    /**
     * 关闭 Java 程序与数据库服务端程序的连接
     * @param connection 【Java 程序与数据库服务端程序的连接】对象
     * @return 成功返回真,失败返回假。
     *
     * @作者 hapday
     * @author hapday
     * @时间 2023-04-13
     * @time 2023-04-13
     * @起始于 0.1.0
     * @since 0.1.0
     */
    public boolean closeDatabaseConnection ( Connection connection ) {
        if (null == connection)
            return false;

        try {
            if (connection.isClosed())
                return true;
        } catch (SQLException e) {
            log.error("判断 Java 程序与数据库服务端程序的连接是否已关闭 - 失败!", e);

            return false;
        }

        try {
            connection.close();
        } catch (SQLException e) {
            log.error("关闭 Java 程序与数据库服务端程序的连接 - 失败!", e);

            return false;
        }

        return true ;
    }

}

 

标签:return,数据库,程序,connection,Java,服务端
From: https://www.cnblogs.com/hapday/p/17315996.html

相关文章

  • Javascript内置对象
    内置对象(常用方法)Math(不是构造函数,直接调用)/**@file封装自己的myMath对象@authorlxs/varmyMath={PI:3.1415926,/*@description求最小值@returns{Number}max@examplemax(3,5)//5/max:function(){varmax=arguments[0];for(vari=1;i<arg......
  • 微信小程序实现tab切换和数据列表
    微信小程序实现tab切换和数据列表问题背景上篇文章介绍了微信小程序实现tab切换的一种方案(参考https://blog.51cto.com/baorant24/6188157),感觉代码不是很精简,本文再用一个demo介绍微信小程序如何实现tab切换和数据列表。问题分析微信小程序对应页面文件结构如下:问题解决话......
  • 【Java技术专题】「盲点追踪」突破知识盲点分析Java安全管理器(SecurityManager)
    前提介绍Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性;二是Java语言开发的应用程序的安全性。由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我们考虑。其中第二个安全性是我们重点考虑的问题,一般我们可以通过安全管理器机制来完善安全性,安全管......
  • Java项目开启JMX:Prometheus数据上报
    对于Java项目而言,开启JMX进行JVM监控是很有必要的,可以帮忙开发人员分析、定位问题常规开启JavaJMX方法一般可以在启动脚本中添加相关的参数-Dcom.sun.management.jmxremote.port=6543-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=......
  • Spring IOC容器注解大全—基于Java的容器配置
    本节介绍了如何在你的Java代码中使用注解来配置Spring容器。它包括以下主题。基本概念:@Bean 和 @Configuration通过使用 AnnotationConfigApplicationContext 实例化Spring容器使用 @Bean 注解使用 @Configuration 注解构建基于Java的配置Bean定义配置PropertySource 抽象......
  • 两阶段鲁棒优化模型 多场景 采用matlab编程两阶段鲁棒优化程序,考虑四个场景,模型采用列
    两阶段鲁棒优化模型多场景采用matlab编程两阶段鲁棒优化程序,考虑四个场景,模型采用列与约束生成(CCG)算法进行求解,场景分布的概率置信区间由1-范数和∞-范数约束,程序含拉丁超立方抽样+kmeans数据处理程序,程序运行可靠,有详细资料YID:69120677501311622......
  • 基于mpc的日前日内微网共享储能优化调度 日前优化部分&mdash;&mdash;该程序首先根据《
    基于mpc的日前日内微网共享储能优化调度日前优化部分——该程序首先根据《电力系统云储能研究框架与基础模型》上面类似方法,首先根据每个居民的实际需要得到响应储能充放电功率,然后优化得到整体的储能充放电功率情况。日内滚动mpc跟踪部分——采用《基于MPC的微电网并网优化调度......
  • 万字详解 | Java 流式编程
    概述StreamAPI是Java中引入的一种新的数据处理方法。它提供了一种高效且易于使用的方法来处理数据集合。StreamAPI支持函数式编程,可以让我们以简洁、优雅的方式进行数据操作,还有使用Stream的两大原因:在大多数情况下,将对象存储在集合中就是为了处理它们,因此你会发现你把编程......
  • javaweb验证码
    publicclassmyfunction{publicstaticStringgetRandString(intlength){Stringstr="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";Randomrandom=newRandom();StringBuffersb=newStringBuffe......
  • Java实现:分治法求最近点对
    /*问题1:如何解决cannotbecasttojava.lang.Comparable问题?产生原因:TreeSet的特点是可排序、不重复,即TreeSet要求存放的对象必须是可排序的。如果对象之间不可排序,就会抛出这个异常。解决:实现Comparable接口问题2:JavaArrayListtoArray()方法解决:https://www.runoo......