⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 databaseconfig.java

📁 java中xpath的demo,还有几本电子书一起打包下载
💻 JAVA
字号:
// -------------------------------------------------------------------------
// Copyright (c) 2000-2004 Ufinity. All Rights Reserved.
//
// This software is the confidential and proprietary information of
// Ufinity
//
// Original author:Administrator
//
// -------------------------------------------------------------------------
// UFINITY MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
// THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
// TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UFINITY SHALL NOT BE
// LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
//
// THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
// CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
// PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
// NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
// SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
// SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
// PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). UFINITY
// SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR
// HIGH RISK ACTIVITIES.
// -------------------------------------------------------------------------
package com.ufinity.jdom;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

/**
 * @author WenQiang Wu
 * 
 * @time 4:18:08 PM Sep 22, 2008
 */
public class DataBaseConfig {

	private static DataBaseConfig dataBaseConfig = null;

	// define read file's name
	private static final String DATABASE_CONFIG_FILE = "database-config.xml";

	private Element rootElt;

	private DataBaseConfig() {
		readDataBaseConfig();
		//intJdbcInfo();
		initBean();
	}

	// instance this class
	public static DataBaseConfig getInstance() {

		if (null == dataBaseConfig) {
			dataBaseConfig = new DataBaseConfig();
		}

		return dataBaseConfig;
	}

	public void readDataBaseConfig() {

		SAXBuilder saBuilder = new SAXBuilder();

		try {
			/**
			 * get read file's all elements
			 */
			Document document = saBuilder.build(Thread.currentThread()
					.getContextClassLoader().getResourceAsStream(
							DATABASE_CONFIG_FILE));

			/**
			 * get the first element for read file
			 */
			this.rootElt = document.getRootElement();
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	/**
	 * get one element
	 */
	private void initJdbcInfo() {
		try {
			String[] dataBaseConfig = new String[] {
					"//jdbc-info/class-driver-name", "//jdbc-info/url",
					"//jdbc-info/user-name", "//jdbc-info/password" };

			if (null != dataBaseConfig && dataBaseConfig.length > 0) {

				for (String databaseString : dataBaseConfig) {
					
					Element driverClassNameElt = (Element) XPath
							.selectSingleNode(rootElt, databaseString);
					String driverClassName = driverClassNameElt.getText();

					System.out.println(driverClassName);

				}

			}
		} catch (JDOMException e) {
			e.printStackTrace();
		}
	}
	
	private void initBean() {
		String beanConfigString = "//beans/bean";
		
		try {
			List<?> listBeans = XPath.selectNodes(rootElt, beanConfigString);
			
			System.out.println(listBeans.size());
			
			for(Iterator<?> iterator = listBeans.iterator(); iterator.hasNext();) {
				Element beanElt = (Element)iterator.next();
				
				String id = beanElt.getAttributeValue("id");
				String className = beanElt.getAttributeValue("class");
				
				System.out.println("id :" + id + " ,className: " + className);
			}
			
		} catch (JDOMException e) {
		
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		DataBaseConfig.getInstance();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -