Java JDBC自定义封装工具类的步骤和完整代码

 更新时间:2021年02月28日 12:08:59   作者:陈明勇1999  
这篇文章主要给大家介绍了关于Java JDBC自定义封装工具类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

封装JDBC工具类的作用可以优化代码,提高开发效率

步骤

① 创建配置文件(config.properties),用于存放注册驱动和连接数据库时所需要的参数值

② 自定义一个类(JDBCUtils.java)

③ 实现构造私有方法 private JDBCUtils(){}

④ 声明所需要的配置变量

private static String driverClass;
private static String url;
private static String username;
private static String password;
private static Connection conn;

⑤ 提供静态代码量,读取配置文件,并为配置变量赋值,注册驱动

⑥ 定义数据库连接方法 public static Connection getConnection();

⑦ 定义释放资源方法(两个)

// 查询操作时所使用的的释放资源方法
public static void close(Connection conn, Statement st, ResultSet rs);
// 增删改操作时所使用的的释放资源方法
public static void close(Connection conn, Statement st)

完整代码

package com.cmy.utils;

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * JDBC工具类
 * @author ChenMingYong
 */
public class JDBCUtils {
	/**
	 * 1.私有构造方法
	 */
	private JDBCUtils(){}
	
	/**
	 * 2.声明所需要的配置变量
	 */
	private static String driverClass;
	private static String url;
	private static String username;
	private static String password;
	private static Connection conn;
	
	// 3.提供静态代码块,读取配置文件的信息,为变量赋值,注册驱动
	static {
		try{
			// 读取配置文件的信息,为变量赋值
			InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("config.properties");
			Properties prop = new Properties();
			prop.load(is);
			driverClass = prop.getProperty("driverClass");
			url = prop.getProperty("url");
			username = prop.getProperty("username");
			password = prop.getProperty("password");
			// 注册驱动
			Class.forName(driverClass);
		}
		catch (Exception e){
			e.printStackTrace();
		}
	
	}
	
	/**
	 * 4.提供数据库连接方法
	 * @return
	 */
	public static Connection getConnection(){
		try {
			conn = DriverManager.getConnection(url, username, password);
		}
		catch (Exception e){
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 5.查询操作时所使用的的释放资源方法
	 * @param conn
	 * @param st
	 * @param rs
	 */
	public static void close(Connection conn, Statement st, ResultSet rs){
		if(conn != null){
			try{
				conn.close();
			}
			catch (SQLException e){
				e.printStackTrace();
			}
		}
		if(st != null){
			try{
				st.close();
			}
			catch (SQLException e){
				e.printStackTrace();
			}
		}
		if(rs != null){
			try{
				rs.close();
			}
			catch (SQLException e){
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 5.增删改操作时所使用的的释放资源方法
	 * @param conn
	 * @param st
	 */
	public static void close(Connection conn, Statement st){
		if(conn != null){
			try{
				conn.close();
			}
			catch (SQLException e){
				e.printStackTrace();
			}
		}
		if(st != null){
			try{
				st.close();
			}
			catch (SQLException e){
				e.printStackTrace();
			}
		}
	}
	
}

总结

到此这篇关于Java JDBC自定义封装工具类的文章就介绍到这了,更多相关Java JDBC自定义封装类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • YGC前后新生代是否变大分析详解

    YGC前后新生代是否变大分析详解

    要解释这个问题,我们先要弄清楚YGC的过程,parNew是新生代的gc算法,简单来说从gc roots开始扫描对象,当扫到一个只要是属于新生代的对象就将其挪到to space,但是老的对象还不会做释放,直到gc完成之后再看是否释放老的对象
    2022-01-01
  • Java三种求水仙花数的方法

    Java三种求水仙花数的方法

    本篇文章通过求水仙花数的实例来让大家对JAVA求数的概念和方法有更深入的理解和应用,学习参考下吧。
    2018-02-02
  • Mybatis自定义Sql模板语法问题

    Mybatis自定义Sql模板语法问题

    这篇文章主要介绍了Mybatis自定义Sql模板语法问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 关于Java中数组切片的几种方法(获取数组元素)

    关于Java中数组切片的几种方法(获取数组元素)

    这篇文章主要介绍了关于Java中数组切片的几种方法(获取数组元素),切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制,需要的朋友可以参考下
    2023-05-05
  • java IO流之转换流的具体使用

    java IO流之转换流的具体使用

    转换流可以将一个字节流包装成字符流,或者将一个字符流包装成字节流,本文主要介绍了java IO流之转换流的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • springboot之redis cache TTL选项的使用

    springboot之redis cache TTL选项的使用

    这篇文章主要介绍了springboot之redis cache TTL选项的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 理解Java设计模式编程中的迪米特原则

    理解Java设计模式编程中的迪米特原则

    这篇文章主要介绍了Java设计模式编程中的迪米特原则,迪米特原则旨在降低类与类之间的耦合,需要的朋友可以参考下
    2016-02-02
  • SpringBoot 2.x 接入非标准SSE格式大模型流式响应的实战解决方案

    SpringBoot 2.x 接入非标准SSE格式大模型流式响应的实战解决方案

    本文介绍了在SpringBoot2.7.3环境中接入非标准SSE格式大模型流式响应的实战解决方案,通过自定义实现,解决了大模型返回数据格式不符合标准SSE规范的问题,关键步骤包括引入Gradle依赖、配置WebClient、处理粘包、格式兼容和双重过滤机制,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • MybatisPlus代码生成器使用示例

    MybatisPlus代码生成器使用示例

    MyBatis-Plus自动化的生成与数据库表对应的Java代码文件,本文主要介绍了MybatisPlus代码生成器使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • SpringBoot+Vue跨域配置(CORS)问题得解决过程

    SpringBoot+Vue跨域配置(CORS)问题得解决过程

    在使用 Spring Boot 和 Vue 开发前后端分离的项目时,跨域资源共享(CORS)问题是一个常见的挑战,接下来,我将分享我是如何一步步解决这个问题的,包括中间的一些试错过程,希望能够帮助到正在经历类似问题的你
    2024-08-08

最新评论