【DRP】数据库连接—读取XML文件

引入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 + "}";
	}

总结:认真的去对待每一个学习资料都会收获很多!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值