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

📄 dbconfig.java

📁 Athena酒店小组_Athena酒店管理系统
💻 JAVA
字号:
/*
 * DBConfig.java
 *
 * Created on 2007年5月12日, 下午1:14
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package utils;

import java.sql.*;
import javax.swing.JOptionPane;
import javax.xml.parsers.*;
import org.w3c.dom.*;

import plugin.*;

/**
 *
 * @author Virlene Cheng
 */
public class DBConfig implements IDBResource
{
    public static final String CONFIG_DB_FILE = "Athena.xml";
    public static final String NODE_DATABASE = "database";
    public static final String NODE_DRIVER = "driver";
    public static final String NODE_URL = "url";
    public static final String NODE_USERNAME = "username";
    public static final String NODE_PASSWORD = "password";
        
    private String configFile;
    private String driver;
    private String url;
    private String username;
    private String password;
    
    /** 构造函数 */
    public DBConfig()
    {
	this.configFile = DBConfig.CONFIG_DB_FILE;
	loadConfig();
    }
    
    /**
     * 构造函数
     * @param 配置文件
     */
    public DBConfig(String configFile)
    {
	this.configFile = configFile;
	loadConfig();
    }
    
    /**
     * 获取数据库连接
     * @return 数据库连接
     */
    public Connection getConnection()
    {
	Connection conn = null;
	try
	{
	    Class.forName(driver);
	    conn = DriverManager.getConnection(url, username, password);
	}
	catch(Exception ex)
	{
	    ex.printStackTrace();
	    JOptionPane.showMessageDialog(null, "无法连接数据库,请检查!", "错误", JOptionPane.ERROR_MESSAGE);
	}
	return conn;
    }
    
    /**
     * 读取数据库配置
     */
    private void loadConfig()
    {
	try
	{
	    //初始化XML文件读取器
	    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
	    DocumentBuilder db = dbf.newDocumentBuilder();
	    Document doc = db.parse(configFile);
	    Element root = doc.getDocumentElement();
	    
	    //获取数据库配置节点
	    Node database = root.getElementsByTagName(DBConfig.NODE_DATABASE).item(0);
	    NodeList list = database.getChildNodes();
	    
	    //获取数据库的各项配置
	    for (int i = 0; i < list.getLength(); i++)
	    {
		Node tempNode = list.item(i);
		if (tempNode.getNodeName().equals(DBConfig.NODE_DRIVER))
		{
		    driver = tempNode.getTextContent();
		}
		if (tempNode.getNodeName().equals(DBConfig.NODE_URL))
		{
		    url = tempNode.getTextContent();
		}
		if (tempNode.getNodeName().equals(DBConfig.NODE_USERNAME))
		{
		    username = tempNode.getTextContent();
		}
		if (tempNode.getNodeName().equals(DBConfig.NODE_PASSWORD))
		{
		    password = tempNode.getTextContent();
		}
	    }
	}
	catch(Exception ex)
	{
	    ex.printStackTrace();
	    JOptionPane.showMessageDialog(null, "读取配置文件错误,请检查文件的完整性!", "错误", JOptionPane.ERROR_MESSAGE);
	}
    }
}

⌨️ 快捷键说明

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