这个为DBUitl.java,放在src下的com.itany.util包中:
package com.itany.util;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.DOMReader;
import org.xml.sax.SAXException;
public class DBUtil
{
/**
* 此处考虑到程序的性能,用单例模式,可以使程序在只读取一次配置文件,不用每次都对硬盘进行操作 用静态代码块给私有静态成员初始化
* 在静态代码块中加载数据库驱动,在第一次调用这个类的静态方法之前会加载数据库驱动,这样就不用每次调用得到数据库连接的函数都加载数据库驱动了
*/
private static final String url;
private static final String username;
private static final String password;
static
{
String s = DBUtil.class.getClassLoader().getResource("db.xml").getPath();
File file = new File(s);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
org.w3c.dom.Document docW3C = null;
try
{
db = dbf.newDocumentBuilder();
// 解析数据库配置文件(xml)
docW3C = db.parse(file);
}
catch (ParserConfigurationException e1)
{
e1.printStackTrace();
}
catch (SAXException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
DOMReader dr = new DOMReader();
// 读取xml文档
Document doc = dr.read(docW3C);
// 开始操作DOC
// 获取根元素
Element root = doc.getRootElement();
Element driver = root.element("mysql").element("driver");
Element ip = root.element("mysql").element("ip");
Element port = root.element("mysql").element("port");
Element databaseName = root.element("mysql").element("databasename");
Element name = root.element("mysql").element("username");
Element pwd = root.element("mysql").element("password");
url = "jdbc:mysql://" + ip.getText() + ":" + port.getText() + "/" + databaseName.getText()+"?useUnicode=true&characterEncoding=utf-8";
username = name.getText();
password = pwd.getText();
try
{
Class.forName(driver.getText());// 加载驱动
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
public DBUtil()
{
super();
}
public static Connection getMysqlConnection()
{
Connection conn = null;
try
{
conn = DriverManager.getConnection(url, username, password);// 得到数据库的连接
}
catch (SQLException e)
{
}
return conn;// 返回数据库的连接
}
}
配置文件放在src目录下,名字为db.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jdbc>
<mysql>
<driver>com.mysql.jdbc.Driver</driver><!--mysql驱动的位置,就是mysql驱动包中Driver.class文件的路径-->
<ip>localhost</ip><!--服务器的ip地址,由于我用的是本机,所以是localhost-->
<port>3306</port><!--mysql数据库的端口号,安装mysql默认的就是3306,如果你安装的时候改了的话,此处做相应的更改就行了-->
<databasename>usermanagerdb</databasename><!--数据库名字-->
<username>xxd</username><!--数据库用户名-->
<password>123456</password><!--数据库登录密码-->
</mysql>
</jdbc>