JDBC实例--通过连接工具类DBUtil +配置文件来获取连接数据库,方便又快捷
根据前面的连接方法,还有缺点就是,如果人家要换数据库,还得改动源代码,然后还要编译什么的。这样客户修改也不容易。
做法:我们写一个配置文件,把该数据写在配置文件上面,然后通过类来加载改文件,然后读取相应的数据。这样就可以解决了换数据库的问题,我们只需要改动配置文件就可以了,不用动源代码。
详细的步骤:
一、通过连接工具类获取连接
在工程中,通常编写一个访问数据库的工具类,此后所有访问数据库的操作,都从工具类中获取连接。
实现工具类的两种方式:
• 直接把数据配置写在工具类。
• 把数据库配置写在一个properties属性文件里,工具类读入属性文件,逐行获取数据库参数。
建议使用第二种。
二、通过属性文件维护连接属性
db.properties的内容:
#驱动类名
jdbc.driver=com.mysql.jdbc.Driver
#连接字符串
jdbc.url=jdbc:mysql://localhost:3306/csdn
#访问数据库的用户名
jdbc.user=root
#访问数据库的密码
jdbc.password=123456
注意:在properties文件中,#符号表示注释。
三、从类路径中加载属性文件
定义好db.properties之后,需要在Java程序中找到它,可以使用从类路径加载的方式:
//属性文件所在的位置
String path = "com/daliu/jdbc/db.properties";
//获得当前类的路径,加载指定属性文件
properties.load(DBUtil.class.getClassLoader().getResourceAsStream(path));
四、连接的关闭
在工具类中定义公共的关闭连接的方法,所有访问数据库的应用,共享此方法。当完成功能,关闭连接。
protected static void closeConnection(Connection conn) {
if (conn != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
首先新建一个java工程,导入所需要的包,新建一个配置文件,如下图:

db.properties文件代码如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/csdn
jdbc.user=root
jdbc.password=123456
DBUtil的代码如下:
package com.daliu.jdbc; import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties; /**
* 使用配置文件来配置JDBC连接数据库 该类用来管理数据库的连接
*/
public class DBUtil {
// 连接数据库的路径
public static String url;
// 连接数据库的用户名
public static String user;
// 连接数据库的密码
public static String pwd; public static String driver; // 静态块
static {
try {
// 读取配置文件
Properties prop = new Properties();
/*
* 这种写法是将来更加推荐的相对路径 写法。
*/
InputStream is = DBUtil.class.getClassLoader().getResourceAsStream(
"com/daliu/jdbc/db.properties"); prop.load(is);
is.close();
// 获取驱动
driver = prop.getProperty("jdbc.driver");
// 获取地址
url = prop.getProperty("jdbc.url");
// 获取用户名
user = prop.getProperty("jdbc.user");
// 获取密码
pwd = prop.getProperty("jdbc.password"); // 注册驱动
Class.forName(driver); } catch (Exception e) {
e.printStackTrace();
}
} /**
* 获取一个连接
*
* @return
* @throws Exception
*/
public static Connection getConnection() throws Exception {
try {
/*
* 通过DriverManager创建一个数据库的连接 并返回
*/
Connection conn = DriverManager.getConnection(url, user, pwd);
/*
* ThreadLocal的set方法 会将当前线程作为key,并将给定的值 作为value存入内部的map中保存。
*/ return conn;
} catch (Exception e) {
e.printStackTrace();
// 通知调用者,创建连接出错
throw e;
}
} /**
* 关闭给定的连接
*/
public static void closeConnection(Connection conn) {
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 测试是否连接成功
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
System.out.println(getConnection());
} }
测试效果:

JDBC实例--通过连接工具类DBUtil +配置文件来获取连接数据库,方便又快捷的更多相关文章
- JDBC中使用Properties类及配置文件的操作
同时发布于:https://blog.csdn.net/Activity_Time/article/details/81149710 一.properties配置文件 开发中获得连接的4个参数(驱动. ...
- 第8.10节 使用__class__查看Python中实例对应的类
一. 语法释义 __class__属性很简单,直接返回实例对应的类.语法如下: 实例. class 当不知道一个实例的类名又想对类的部分内容进行访问时可以使用__class__返回类. 注意:是返回实 ...
- 通过使用集合Properties完成JDBC的连接工具类
1.将数据库连接对象所需参数保存在本地文件中 database.properties driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localh ...
- jdbc连接的工具类
在不实用框架的情况下,有一个jdbc的工具类来进行数据库的连接就再好不过了,下面提供这个工具类DBUtil.java package org.jdbc.test; import java.io.Inp ...
- Java SE 之 数据库操作工具类(DBUtil)设计
JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager ...
- MyEclipse自动生成hibernate实体类和配置文件攻略
步骤1:找到导航栏里面的window--showView然后输入db brower,打开数据库浏览窗口步骤2:在数据库浏览窗口里只有一个Myeclipse自带的数据库,该数据没有用,我们在空白的地方右 ...
- Java学习-023-Properties 类 XML 配置文件读取及写入源代码
之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...
- 数据库连接工具类——包含取得连接和关闭资源 ConnUtil.java
package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...
- 数据库连接工具类 数据库连接工具类——仅仅获得连接对象 ConnDB.java
package com.util; import java.sql.Connection; import java.sql.DriverManager; /** * 数据库连接工具类——仅仅获得连接对 ...
随机推荐
- MVC为用户创建专属文件夹
假设需要为用户创建专属文件夹,文件夹名为用户名,并且需要根据用户类型在不同的文件夹下创建目标文件夹. 在F盘创建"Users"文件夹,在其中创建"Gold"文件 ...
- C#(静态String类)
[转]http://blog.csdn.net/angelazy/article/details/8501776 C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的 ...
- LR杂记-nmon+analyser监控linux系统资源
1.查看linux具体版本号信息 file /sbin/init 2.下载相应nmon版本号 http://pkgs.repoforge.org/nmon/ 3.安装 rpm -ivh nmon-14 ...
- Spring+Quartz实现文件中转站
其实这个功能QQ邮箱就有,为什么还要自己开发一个呢?因为有的文件非常重要...其实是客户要求... 那么我们先来看一下QQ的界面: 我们设计的界面: 文件要到期了是否通知用户?这里我们支持邮件及短信方 ...
- putty如何退出全屏模式
putty有全屏模式,有单击标题栏,在弹出餐单中有fullscreen选项. 全屏模式看起来挺不错. 退出全屏模式的方式有点特别.Esc不起作用.Alt+Enter也不起作用. 要退出的时候需要把鼠标 ...
- Android平台上优秀的开源项目
软件名:gaeproxy 软件作用:Android手机配置GoAgent. 项目地址:https://github.com/madeye/gaeproxy.git 软件名:ProxyDroid 软件作 ...
- Android之使用XMLPull解析xml(二)
转自:http://www.blogjava.net/sxyx2008/archive/2010/08/04/327885.html 介绍下在Android中极力推荐的xmlpull方式解析xml.x ...
- [ IOS ] iOS-控制器View的创建和生命周期
reference to : 1. 控制器View的创建 首先我们来看一下控制器view创建的流程图 控制器view加载.jpeg 从图中我们可以看出,在控制器view加载过程中有两个重要的方法lo ...
- C语言:用二进制方式向文件读写一组数据(fread、fwrite)
#include<stdio.h> #define SIZE 10 struct student { char name[10]; int num; int age; char addr[ ...
- C语言:用字符读取流和输出流来读写入数据。(文本文件)
/* 文件的几种操作模式: r:只读 w:只写 rw:可读可写 文件的分类: t:文本文件(字符文件) b:二进制文件(字节文件) 注意: 采用只读方式打开文件时,如果源文件不存在,打开文 ...