处理数据库资源文件的类
这个类的作用在于帮你解决连接数据库时的"硬编码"问题,即驱动类,连接字符串,用户名,密码这些信息可以通过资源文件来获得,这种做法既增加了安全性,又使代码容易维护.
处理数据库资源文件的类 DBConfig.java
import
java.util.Properties;
import
java.io.
*
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
public
class
DBConfig
...
{
private static Object initLock = new Object();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
private static DBConfig dbconfig = null;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
private Properties props = null;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public static DBConfig getInstance()...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(dbconfig == null)...{
synchronized (initLock)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(dbconfig == null)...{
dbconfig = new DBConfig();
}
}
}
return dbconfig;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private synchronized void loadProperties()...{
props = new Properties();
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
try...{
System.out.println("Load pro file");
InputStream in = getClass().getResourceAsStream("/db.properties");
props.load(in);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}catch(Exception e)...{
e.printStackTrace();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public String getProperty (String propName)...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(props == null)...{
loadProperties();
}
return props.getProperty(propName);
}
}
资源文件 db.properties
url=jdbc:mysql://localhost:3306/example
driver=org.gjt.mm.mysql.Driver
username=root
password=123654
|
在连接数据库的代码中,可以通过以下方式得到驱动类,url,username,password
String driver
=
DBConfig.getInstance().getProperty(
"
driver
"
);
String url
=
DBConfig.getInstance().getProperty(
"
url
"
);;
String username
=
DBConfig.getInstance().getProperty(
"
username
"
);;
String password
=
DBConfig.getInstance().getProperty(
"
password
"
);;
P.S.
请注意这三个文件的位置,建议放在同一个目录下