03-封装JDBCUtils工具类获取Connection连接对象

2023-12-03 21:52

本文主要是介绍03-封装JDBCUtils工具类获取Connection连接对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

封装JDBCUtils工具类

直接配置连接参数的方式

创建JDBC的工具类简化JDBC编程,工具类当中的方法都是静态的,不需要new对象直接采用类名调用

package com.bjpowernode.jdbc.utils;
import java.sql.*;
public class DBUtil {// 工具类中的构造方法都是私有的可以防止new对象private DBUtil() {}// 静态代码块在类加载时执行并且只执行一次static {try {// 执行代码可能出现异常直接捕捉Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 获取数据库连接对象* @return 连接对象* @throws SQLException*/public static Connection getConnection() throws SQLException {// 执行这行代码可能会出现异常,将其抛出并在JDBC代码中捕捉return DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode", "root", "333");}/*** 关闭资源,由小到大,如果需要关闭哪个资源就传入对应的对象,不需要关闭就传入null* @param conn 连接对象* @param ps 数据库操作对象* @param rs 结果集*/public static void close(Connection conn, Statement ps, ResultSet rs){if(rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if(ps != null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if(conn != null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}

使用配置文件的方式

在实际开发中可以将编译异常转成运行异常,这样调用者既可以选择捕获该异常也可以按照默认方式处理该异常

// 定义数据库连接信息的相关属性,因为只需要一份可以使用static修饰
private static String user; //用户名
private static String password; //密码
private static String url; //url
private static String driver; //驱动名
static {try {Properties properties = new Properties();properties.load(new FileInputStream("src\\mysql.properties"));// 读取配置文件中的相关属性值user = properties.getProperty("user");password = properties.getProperty("password");url = properties.getProperty("url");driver = properties.getProperty("driver");Class.forName(driver);} catch (IOException e) {//将编译异常转成运行异常throw new RuntimeException(e);}
}// 连接数据库返回Connection对象
public static Connection getConnection() {try {return DriverManager.getConnection(url, user, password);} catch (SQLException e) {// 将编译异常转成运行异常throw new RuntimeException(e);}
}

使用工具类后的基本骨架

public class JDBCTest12 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {// 获取连接conn = DBUtil.getConnection();// 获取预编译的数据库操作对象} catch (Exception e) {e.printStackTrace();} finally{// 释放资源DBUtil.close(conn, ps, rs);}}
}

这篇关于03-封装JDBCUtils工具类获取Connection连接对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/451003

相关文章

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四