java原生封装_原生JDBCUtils工具类封装代码实现

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;

/*

* 创建JDBC工具类

* 定义一个properties文件,存储数据库的4大信息

* 在成员位置定义5个存储数据库信息的变量

* 定义一个静态代码块

* a.使用Properties集合+IO读取配置文件中的信息,把信息保存到集合中

* b.获取集合中的数据库连接信息,给成员变量赋值

* c.注册驱动和获取数据库连接对象

* 定义一个静态方法,用于获取并返回数据库连接对象Connection

* 定义一个静态方法,用于释放资源

*/

public class JDBCUtils {

/**

* 在成员位置定义5个存储数据库信息的变量

*/

private static String driver;

private static String url;

private static String user;

private static String password;

/**

* 定义一个Connection类型的变量用来存储获取到的Connection实例化对象

*/

private static Connection conn;

/**

* 私有构造方法,防止用户创建对象,浪费内存空间

*/

private JDBCUtils() {

}

static {

try {

/**

* 使用properties集合读取配置信息

*/

FileReader fr = new FileReader("data.properties");

Properties p = new Properties();

p.load(fr);

/**

* 获取集合中的数据库连接信息,给成员变量赋值

*/

driver = p.getProperty("driver");

url = p.getProperty("url");

user = p.getProperty("user");

password = p.getProperty("password");

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

/**

* 创建驱动和数据库连接对象

*/

try {

Class.forName(driver);

conn = DriverManager.getConnection(url, user, password);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

/**

* 如果数据库连接失败,则不应该继续往下,抛出运行时异常给虚拟机,终止程序

*/

throw new RuntimeException("数据库连接失败!");

}

}

/**

* 定义一个静态方法,用于获取数据库连接对象Connection

*/

public static Connection getConnection() {

return conn;

}

/**

* 定义一个静态方法,用于释放资源

*/

public static void close(ResultSet rs, Statement stat, Connection conn) {

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (stat != null) {

try {

stat.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

/*

* 测试JDBCUtils工具类

*/

public class Test {

public static void main(String[] args) {

show();

}

private static void show() {

/**

* 获取数据库连接对象Connection

*/

Connection conn = JDBCUtils.getConnection();

Statement stat = null;

ResultSet rs = null;

try {

/**

* 获取执行sql语句的执行者对象

*/

stat = conn.createStatement();

/**

* 执行sql语句

*/

String sql = "SELECT * FROM 表名";

rs = stat.executeQuery(sql);

/**

* 处理结果集,遍历Set集合

*/

if (rs.next()) {

System.out.println(rs.getInt("cid") + "\t" + rs.getString("cname"));

} else {

System.out.println("没有查询到指定的数据!");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

/**

* 使用JDBCUtilsConfig工具类中的方法close释放资源

*/

JDBCUtils.close(rs, stat, conn);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值