引入XML文件
DRP视频中刚开始连接数据库的时候是写在程序中的,显得有点不专业啊!刚说到这人家改用XML文件了,和配置文件的作用一样啊!那么就有新的知识要学习了,读取XML文件中的数据。首先看下XML文件的结构。
然后宏观的把握这个小程序的结构!
这里总结下连接数据库过程中小编感觉感兴趣的技术,如果感觉没有整体感,没有什么共鸣那,建议看下DRP 视频啊!
创建对象之——饿汉式 和懒汉式
根据上图可知,XmlConfigReader 类得作用是读取XML 文件中的信息,然后存放在XML实体中。DbUtil 类连接 数据库的时候需要去实例化一个XmlConfigReader 类,因为数据库连接只需要连接一次就可以了,所以这里便用到了一个设计模式—单例。 单例模式 实例化对象分为两种方式:饿汉式、懒汉式。
饿汉式:上来就先new一个对象,不管是否使用
// //饿汉式(预先加载)
private static XmlConfigReader instance = new XmlConfigReader();
private XmlConfigReader() {
//这里放读XML文件的代码
}
public static XmlConfigReader getInstance() {
return instance;
}
懒汉式:是调用getInstance 方法是在new一个对象,但是懒汉式涉及到线程安全的问题。如果两个线程同时调用 getInstance 方法,便会new出两个对象出来。所以在该方法上加了个synchronized 锁(独占锁),同一时间只允许一个线程调用这个方法。
//懒汉式(延迟加载lazy)
private static XmlConfigReader instance = null;
//保存jdbc相关配置信息
private JdbcConfig jdbcConfig = new JdbcConfig();
private XmlConfigReader() {
//这里放读XML文件的代码
}
// synchronized(独占锁)
public static synchronized XmlConfigReader getInstance() {
if (instance == null) {
instance = new XmlConfigReader();
}
return instance;
}
/**
* 返回jdbc相关配置
* @return
*/
public JdbcConfig getJdbcConfig() {
return jdbcConfig;
}
</pre><pre>
改变输出方式之—重写toStirng() 方法
为了验证XmlConfigReader 类是否真正的读取到了XML文件中的信息,我们打印下
public static void main(String[] args) {
JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();
System.out.println(jdbcConfig.getDriverName());
System.out.println(jdbcConfig.getUrl());
System.out.println(jdbcConfig.getUserName());
}
但是如果其他地方也想输入连接数据库的信息,需要在把system.out在重写一个遍非常不友好啊! 其实System.out.println(jdbcConfig )输出对象信息是,调用的是toString方法,所以在jdbcConfig实体中重写object对象的toString()方法打印出连接数据库信息。
@Override
public String toString() {
return this.getClass().getName() + "{driverName:" + driverName + ", url:" + url + ", userName:" + userName + "}";
}
总结:认真的去对待每一个学习资料都会收获很多!