java 连接工具类_Java的数据库连接工具类的编写

packagecn.javabs.util;importjava.io.IOException;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.Properties;/***@author: Mryang

* Jdbc工具类: 工具类的含义是作为一个通用的辅助资料使用,简化开发流程,提高效率。

* 工具类一般使用“static”进行修饰,静态化

* static的优点

* |---- 1. 可以使用 【类名.函数名称】进行调用,不必再次创建对象

* |---- 2. 优于构造函数先执行

* |---- 4. 静态成员被所有对象所共享(静态数据达到成为共享数据)

* |---- 3. 随着类的加载而加载 (也就是说类运行了,静态成员也就跟随运行了)

* static的缺点

* |---- 1. 访问出现局限性,只能访问静态

* |---- 2. 静态成员的生命周期过长

* |---- 3. 不可以与this\super关键字同用

* |----因为this代表是当前类对象,而静态存在时,有可能没有对象

* |----因为super代表是父类对象,而静态存在时,有可能没有对象,

* |----而且静态优先于对象存在

* |----4.静态方法只能访问静态成员, 非静态方法既可以访问静态又可以访问非静态;

*

*

**/

public classJdbcUtil {//定义 数据库驱动

private staticString driverClass;//定义 数据库的连接

private staticString url;//定义 数据库用户

private staticString user;//定义 数据库用户的密码

private staticString password;//静态代码块

static{try{//JdbcUtil.class是获得当前对象所属的class对象//getClassLoader()是取得该Class对象的类装载器//getResourceAsStream(“dbcfg.properties”) 调用类加载器的方法加载资源,返回是字节输入流

InputStream in = JdbcUtil.class.getClassLoader().getResourceAsStream("dbcfg.properties");//实例化Properties对象,目的是为了创建props

Properties props = newProperties();//在props对象中可以进行加载属性列表到Properties类对象

props.load(in);//也就是说: 通过props对象进行加载输入流对象(in)

/** 通过getProperty方法用指定的键在此属性列表中搜索属性*/

//也就是说: 通过props对象进行获取【dbcfg.properties】中的指定的键-driverClass(被指定)

driverClass = props.getProperty("driverClass");//也就是说: 通过props对象进行获取【dbcfg.properties】中的指定的键-url(被指定)

url = props.getProperty("url");//也就是说: 通过props对象进行获取【dbcfg.properties】中的指定的键-user(被指定)

user = props.getProperty("user");//也就是说: 通过props对象进行获取【dbcfg.properties】中的指定的键-password(被指定)

password = props.getProperty("password");//已经获取过配置文件中的属性键值对,将字节输入流进行释放关闭

in.close();

}catch(IOException e) {//转换异常抛出

throw new ExceptionInInitializerError("获取数据库配置文件信息失败");

}try{//类加载-->驱动

Class.forName(driverClass);

}catch(ClassNotFoundException e) {//转换异常抛出

throw new ExceptionInInitializerError("加载驱动失败");

}

}/*** 获取连接

*@return: conn*/

public staticConnection getConnection(){try{//连接类型 连接对象 = 驱动管理中的获取连接(连接,用户名,密码)

Connection conn =DriverManager.getConnection(url,user,password);//将连接进行返回

returnconn;

}catch(Exception e) {//转换异常抛出

throw new RuntimeException("链接数据库的url或用户名密码错误,请检查您的配置文件");

}

}/*** 释放资源

* 传递三个参数: 结果集对象 ,处理Sql语句对象 , 连接对象

* 无返回值状态*/

public static voidrelease(ResultSet rs,Statement stmt,Connection conn){//如果 结果集中不为空

if(rs!=null){try{

rs.close();//将结果集中关闭

} catch(SQLException e) {

e.printStackTrace();

}

rs= null;

}//如果处理Sql语句对象不为空

if(stmt!=null){try{

stmt.close();//将处理Sql语句对象关闭

} catch(SQLException e) {

e.printStackTrace();

}

stmt= null;

}//如果 连接不为空

if(conn!=null){try{

conn.close();//将连接关闭

} catch(SQLException e) {

e.printStackTrace();

}

conn= null;

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值