* 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;
}
}
}
java项目里的数据库配置需要本地实现吗
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:hadoop中map的含义
下一篇:个人服务器部署mysql
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Jenkins使用的什么数据库 jenkins配置不需要数据库吗
Jenkins是什么 Jenkins 是一个可扩展的持续集成引擎。 主要用于: 1 持续、自动地构建/测试软件项目。 2 监控一些定时执行的任务。 Jenkins拥有的特性包括: 1 易于安装-只要把jenkin
Jenkins使用的什么数据库 运维 操作系统 数据库 Jenkins