加载驱动,取得connection的util文件

2 篇文章 0 订阅
2 篇文章 0 订阅
这个为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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值