1. 单数据库连接
DBCon.xml
<?
xml
version
=
"1.0"
?>
<
jdbc-con
>
<!--
此处是
mysql
的驱动配置
-->
<
jdbc-name
>
mysql
</
jdbc-name
>
<
jdbc-driver
>
com.mysql.jdbc.Driver
</
jdbc-driver
>
<
jdbc-url
>
jdbc:mysql:///test
</
jdbc-url
>
<
jdbc-uname
>
root
</
jdbc-uname
>
<
jdbc-psw
>
root
</
jdbc-psw
>
</
jdbc-con
>
|
JDBCFactoty.java
package
com.dao;
import
java.io.IOException;
import
java.sql.*;
import
java.util.Iterator;
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.JDOMException;
import
org.jdom.input.SAXBuilder;
public
class
JDBCFactory {
static
Connection
CONN
=
null
;
static
PreparedStatement
PSTMT
=
null
;
static
ResultSet
RS
=
null
;
private
static
String
driver
=
null
;
private
static
String
url
=
null
;
private
static
String
uname
=
null
;
private
static
String
psw
=
null
;
static
{
SAXBuilder builder =
new
SAXBuilder();
try
{
Document doc = builder.build(
"./src/DBCon.xml"
);
Element root = doc.getRootElement();
driver
= root.getChildText(
"jdbc-driver"
);
url
= root.getChildText(
"jdbc-url"
);
uname
= root.getChildText(
"jdbc-uname"
);
psw
= root.getChildText(
"jdbc-psw"
);
}
catch
(JDOMException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(IOException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
public
static
void
openDB() {
try
{
Class.forName(
driver
);
if
(JDBCFactory.
CONN
==
null
) {
CONN
= DriverManager.getConnection(
url
,
uname
,
psw
);
}
}
catch
(ClassNotFoundException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(Exception e) {
e.printStackTrace();
}
}
public
static
void
closeDB() {
try
{
if
(JDBCFactory.
RS
!=
null
) {
JDBCFactory.
RS
.close();
JDBCFactory.
RS
=
null
;
}
if
(JDBCFactory.
PSTMT
!=
null
)
{
JDBCFactory.
PSTMT
.close();
JDBCFactory.
PSTMT
=
null
;
}
if
(JDBCFactory.
CONN
!=
null
)
{
JDBCFactory.
CONN
.close();
JDBCFactory.
CONN
=
null
;
}
}
catch
(SQLException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
}
|
2. 多数据库连接
DBCon.xml
<?
xml
version
=
"1.0"
?>
<
jdbc-con
>
<!--
此处是
mysql
的驱动配置
-->
<
dbcon
>
<
jdbc-name
>
mysql
</
jdbc-name
>
<
jdbc-driver
>
com.mysql.jdbc.Driver
</
jdbc-driver
>
<
jdbc-url
>
jdbc:mysql:///test
</
jdbc-url
>
<
jdbc-uname
>
root
</
jdbc-uname
>
<
jdbc-psw
>
root
</
jdbc-psw
>
</
dbcon
>
<!--
此处是
oracle
的驱动配置
-->
<
dbcon
>
<
jdbc-name
>
oracle
</
jdbc-name
>
<
jdbc-driver
>
oracle.jdbc.driver.OracleDriver
</
jdbc-driver
>
<
jdbc-url
>
jdbc:oracle:thin:@localhost:1521:Test
</
jdbc-url
>
<
jdbc-uname
>
sys
</
jdbc-uname
>
<
jdbc-psw
>
sys
</
jdbc-psw
>
</
dbcon
>
</
jdbc-con
>
|
JDBCFactory.java
package
com.dao;
import
java.io.IOException;
import
java.sql.*;
import
java.util.Iterator;
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.JDOMException;
import
org.jdom.input.SAXBuilder;
public
class
JDBCFactory {
static
Connection
CONN
=
null
;
static
PreparedStatement
PSTMT
=
null
;
static
ResultSet
RS
=
null
;
private
static
String
driver
=
null
;
private
static
String
url
=
null
;
private
static
String
uname
=
null
;
private
static
String
psw
=
null
;
static
{
SAXBuilder builder =
new
SAXBuilder();
try
{
Document doc = builder.build(
"./src/DBCon.xml"
);
Element root = doc.getRootElement();
Iterator<Element> it = root.getChildren().iterator();
while
(it.hasNext())
{
Element tmp = it.next();
if
(tmp.getChildText(
"jdbc-name"
).equalsIgnoreCase(
"mysql"
))
{
driver
= tmp.getChildText(
"jdbc-driver"
);
url
= tmp.getChildText(
"jdbc-url"
);
uname
= tmp.getChildText(
"jdbc-uname"
);
psw
= tmp.getChildText(
"jdbc-psw"
);
}
}
}
catch
(JDOMException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(IOException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
public
static
void
openDB() {
try
{
Class.forName(
driver
);
if
(JDBCFactory.
CONN
==
null
) {
CONN
= DriverManager.getConnection(
url
,
uname
,
psw
);
}
}
catch
(ClassNotFoundException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(Exception e) {
e.printStackTrace();
}
}
public
static
void
closeDB() {
try
{
if
(JDBCFactory.
RS
!=
null
) {
JDBCFactory.
RS
.close();
JDBCFactory.
RS
=
null
;
}
if
(JDBCFactory.
PSTMT
!=
null
)
{
JDBCFactory.
PSTMT
.close();
JDBCFactory.
PSTMT
=
null
;
}
if
(JDBCFactory.
CONN
!=
null
)
{
JDBCFactory.
CONN
.close();
JDBCFactory.
CONN
=
null
;
}
}
catch
(SQLException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
}
|
3. 比较优化的方式(提取static{}块)
ConfigDB.java
package
com.dao;
import
java.io.IOException;
import
java.util.Iterator;
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.JDOMException;
import
org.jdom.input.SAXBuilder;
public
class
ConfigDB {
static
String
driver
;
static
String
url
;
static
String
username
;
static
String
password
;
static
{
SAXBuilder builder =
new
SAXBuilder();
try
{
Document doc = builder.build(
"./src/DBCon.xml"
);
Element root = doc.getRootElement();
Iterator<Element> it = root.getChildren().iterator();
while
(it.hasNext())
{
Element tmp = it.next();
if
(tmp.getChildText(
"jdbc-name"
).equalsIgnoreCase(
"mysql"
))
{
driver
= tmp.getChildText(
"jdbc-driver"
);
url
= tmp.getChildText(
"jdbc-url"
);
username
= tmp.getChildText(
"jdbc-uname"
);
password
= tmp.getChildText(
"jdbc-psw"
);
}
}
}
catch
(JDOMException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(IOException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
}
|
JDBCFactory.java
package
com.dao;
import
java.io.IOException;
import
java.sql.*;
import
java.util.Iterator;
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.JDOMException;
import
org.jdom.input.SAXBuilder;
public
class
JDBCFactory {
static
Connection
CONN
=
null
;
static
PreparedStatement
PSTMT
=
null
;
static
ResultSet
RS
=
null
;
public
static
void
openDB() {
try
{
Class.forName(ConfigDB.
driver
);
if
(JDBCFactory.
CONN
==
null
) {
CONN
= DriverManager.getConnection(ConfigDB.
url
,
ConfigDB.
username
, ConfigDB.
password
);
}
}
catch
(ClassNotFoundException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(Exception e) {
e.printStackTrace();
}
}
public
static
void
closeDB() {
try
{
if
(JDBCFactory.
RS
!=
null
) {
JDBCFactory.
RS
.close();
JDBCFactory.
RS
=
null
;
}
if
(JDBCFactory.
PSTMT
!=
null
) {
JDBCFactory.
PSTMT
.close();
JDBCFactory.
PSTMT
=
null
;
}
if
(JDBCFactory.
CONN
!=
null
) {
JDBCFactory.
CONN
.close();
JDBCFactory.
CONN
=
null
;
}
}
catch
(SQLException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
}
|
DBCon.xml
<?
xml
version
=
"1.0"
?>
<
jdbc-con
>
<!--
此处是
mysql
的驱动配置
-->
<
dbcon
>
<
jdbc-name
>
mysql
</
jdbc-name
>
<
jdbc-driver
>
com.mysql.jdbc.Driver
</
jdbc-driver
>
<
jdbc-url
>
jdbc:mysql:///test
</
jdbc-url
>
<
jdbc-uname
>
root
</
jdbc-uname
>
<
jdbc-psw
>
root
</
jdbc-psw
>
</
dbcon
>
<!--
此处是
oracle
的驱动配置
-->
<
dbcon
>
<
jdbc-name
>
oracle
</
jdbc-name
>
<
jdbc-driver
>
oracle.jdbc.driver.OracleDriver
</
jdbc-driver
>
<
jdbc-url
>
jdbc:oracle:thin:@localhost:1521:Test
</
jdbc-url
>
<
jdbc-uname
>
sys
</
jdbc-uname
>
<
jdbc-psw
>
sys
</
jdbc-psw
>
</
dbcon
>
</
jdbc-con
>
|