您的位置:首页 > 编程语言 > Java开发

java读取配置文件的几种方式

2018-02-28 15:34 573 查看
web工程一般都会连接数据库,然而加载数据库配置文件主要有几种。
1.读取properties文件,连接数据库   //这是最简单的方式,
注:config.properties在src目录下







#DB Properties
Driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
DBurl=jdbc:sqlserver://127.0.0.1\\:1433;DatabaseName=PCMgmt
DBUser=sa
DBPwd=123DBUtils.javapackage com.lee.demo.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtils {

public static Connection getConnection() {
Connection conn = null;
InputStream inputStream = DBUtils.class.getResourceAsStream("/config.properties");
String driver = "";
String dburl = "";
String user = "";
String pwd = "";
Properties p = new Properties();
try {
p.load(inputStream);
} catch (IOException e1) {
e1.printStackTrace();
}
driver = p.getProperty("Driver");
dburl = p.getProperty("DBurl");
user = p.getProperty("DBUser");
pwd = p.getProperty("DBPwd");
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(dburl, user, pwd);
System.out.println("Database connected successful...");
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) {
e.printStackTrace();
}

return conn;

}

public static void release(Connection conn) {
try {
if(conn!=null) {
conn.close();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
conn = null;
System.out.println("release successful...");
}

}

public static void release(PreparedStatement prep, Connection conn) {

try {
if(conn!=null) {
conn.close();
}
if(prep!=null) {
prep.close();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
conn = null;
prep = null;
System.out.println("release successful...");
}
}

public st
4000
atic void release(PreparedStatement prep, Connection conn, ResultSet rs) {

try {
if(conn!=null) {
conn.close();
}
if(prep!=null) {
prep.close();
}
if(rs!=null) {
rs.close();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
conn = null;
prep = null;
rs = null;
System.out.println("release successful...");
}

}

public static void main(String[] args) {
DBUtils.release(DBUtils.getConnection());

}

}

2.读取xml配置文件,连接数据库  //我这里涉及解析xml,需要用到dom4j.jar,自行下载







<?xml version="1.0" encoding="UTF-8"?>
<config>
<DB>
<Driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</Driver>
<Server>127.0.0.1</Server>
<DBPort>1433</DBPort>
<DBName>PCMgmt</DBName>
<DBUser>sa</DBUser>
<DBPsWd>123</DBPsWd>
</DB>
</config>
DBUtils_2.javapackage com.lee.demo.util;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class DBUtils_2 {

public static void main(String[] args) {
DBUtils_2.release(getConnection());
}

public static Connection getConnection() {
Connection conn = null;
Map<String,String> map = getPropertiey();
String Driver = map.get("Driver");
String Server = map.get("Server");
String DBName = map.get("DBName");
String DBPort = map.get("DBPort");
String DBUser = map.get("DBUser");
String DBPsWd = map.get("DBPsWd");
String DB_Url = "jdbc:sqlserver://"+Server+"\\:"+DBPort+";DatabaseName="+DBName;
try {
Class.forName(Driver).newInstance();
conn = DriverManager.getConnection(DB_Url, DBUser, DBPsWd);
System.out.println("Database connected successful...");
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}

public static Map<String,String> getPropertiey() {
Map<String,String> map = new HashMap<String,String>();
File file = new File(DBUtils_2.class.getResource("database.xml").getFile());
SAXReader saxReader = new SAXReader();
Document document;
try {
document = saxReader.read(file);
Element element = document.getRootElement();
Iterator<?> iterator = element.elementIterator();
while (iterator.hasNext()) {
org.dom4j.Element e = (org.dom4j.Element) iterator.next();
//System.out.println(e.getName() + " ");
List<org.dom4j.Attribute> attributes = e.attributes();
Iterator<?> it = e.elementIterator();
while (it.hasNext()) {
/*
* org.dom4j.Element object = (org.dom4j.Element) it.next();
* System.out.println(object.getName() + ":" + object.getText() + "\t");
*/
Element object = (org.dom4j.Element) it.next();
try {
map.put(object.getName(), object.getText());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
} catch (DocumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return map;
}

public static void release(Connection conn) {
try {
if(conn!=null) {
conn.close();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
conn = null;
System.out.println("release successful...");
}

}

public static void release(PreparedStatement prep, Connection conn) {

try {
if(conn!=null) {
conn.close();
}
if(prep!=null) {
prep.close();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
conn = null;
prep = null;
System.out.println("release successful...");
}
}

public static void release(PreparedStatement prep, Connection conn, ResultSet rs) {

try {
if(conn!=null) {
conn.close();
}
if(prep!=null) {
prep.close();
}
if(rs!=null) {
rs.close();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
conn = null;
prep = null;
rs = null;
System.out.println("release successful...");
}

}

}

3.web.xml配置连接池。这个不想写了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: