前面我写过一个使用commons-dbutils简化JDBC操作(二) dbutils+反射的文章,每次使用时都需要写一个DBM.java的文件,我们可以将配置参数放在配置文件中,然后将DBM.class文件和dbutils.jar合并在一起.
java中的配置文件可以使用.properties文件或者web.xml文件
1.将DBM.java中的四个参数改为通过setter和getter进行操作的代码如下:
DBM.java
public class DBM<T> {
private static String className;
private static String url;
private static String uid;
private static String pwd;
public static String getClassName() {
return className;
}
public static void setClassName(String className) {
DBM.className = className;
}
public static String getUrl() {
return url;
}
public static void setUrl(String url) {
DBM.url = url;
}
public static String getUid() {
return uid;
}
public static void setUid(String uid) {
DBM.uid = uid;
}
public static String getPwd() {
return pwd;
}
public static void setPwd(String pwd) {
DBM.pwd = pwd;
}
2.读取配置文件对这四个static变量赋值
2.1使用.properties文件
创建DBM.properties文件,内容如下:
DriveClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
ConnectURL=jdbc:sqlserver://127.0.0.1:1433;databasename=mybookshop
UID=sa
PWD=
将此文件放在src的根目录下
在DBM.java文件中编写一个loadConfig的方法:
private void loadConfig(){
try {
Properties prop = new Properties();
prop.load(DBM.class.getResource("/dbm.properties").openStream());
setClassName(prop.getProperty("DriveClass"));
setUrl(prop.getProperty("ConnectURL"));
setUid(prop.getProperty("UID"));
setPwd(prop.getProperty("PWD"));
} catch (Exception e) {
e.printStackTrace();
}
}
通过java.util.Properties 类读取DBM.properties文件中的参数
修改DBM.java中的构造方法:
public DBM() {
if(className==null){
loadConfig();
}
DbUtils.loadDriver(className);
cls = (Class) ((ParameterizedType) this.getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
}
2.2使用web.xml进行参数配置,这里我选择使用监听器进读取配置文件中的参数
web.xml中参数配置如下:
<context-param>
<param-name>DriverClass</param-name>
<param-value>com.microsoft.sqlserver.jdbc.SQLServerDriver</param-value>
</context-param>
<context-param>
<param-name>ConnectURL</param-name>
<param-value>jdbc:sqlserver://127.0.0.1:1433;databasename=mybookshop</param-value>
</context-param>
<context-param>
<param-name>UID</param-name>
<param-value>sa</param-value>
</context-param>
<context-param>
<param-name>PWD</param-name>
<param-value></param-value>
</context-param>
自己写一个DBMConfigListener.java 监听器来读取配置文件将值赋给DBM,代码如下:
view plaincopy to clipboardprint?
01.package com.haha.db;
02.
03.