package M;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class OracleConnect {
public Connection con = null;// 创建一个数据库连接
public PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
public ResultSet result = null ;// 创建一个结果集对象
private String Driver = "";
private String url = "";
public OracleConnect(String user, String pssword){
getConfig();
connect(user,pssword);
}
private void getConfig() {
try {
//1。获取DOM 解析器的工厂实例。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//2。获得具体的DOM解析器。
DocumentBuilder builder = factory.newDocumentBuilder();
//3。获取文件
Document document = builder.parse(new File("src/M/DBconfig.xml"));
//4。获取根元素
Element root = document.getDocumentElement();
//5。获取根节点[有多个节点]
NodeList list = root.getElementsByTagName("connect");
for (int i = 0; i < list.getLength(); i++) {
Element lan = (Element) list.item(i);
NodeList clist = lan.getChildNodes();
for (int j = 0; j < clist.getLength(); j++) {
Node c = clist.item(j);
if (c instanceof Element) {
if(c.getNodeName() == "driver"){
this.Driver = c.getTextContent();
}
if(c.getNodeName() == "url"){
this.url = c.getTextContent();
}
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void connect(String user ,String password){
try
{
Class.forName(Driver);// 加载数据库驱动程序
System.out.println("开始尝试连接数据库!");
con = DriverManager.getConnection(url, user, password);// 获取连接
System.out.println("数据库连接成功!");
}
catch (Exception e)
{
System.out.println("数据库连接失败!");
}
}
public void close(){
try
{
if(result!=null)
result.close();
if(pre!=null)
pre.close();
if(con!=null)
con.close();
System.out.println("数据库连接已关闭!");
}
catch (Exception e)
{
System.out.println("数据库连接关闭失败!");
}
}
public void insert(String sql){
try{
pre = con.prepareStatement(sql);
}catch(Exception e){
System.out.println("插入异常!");
}
}
public void delete(String sql){
try{
pre = con.prepareStatement(sql);
}catch(Exception e){
System.out.println("删除异常!");
}
}
public void update(String sql){
try{
pre = con.prepareStatement(sql);
}catch(Exception e){
System.out.println("修改异常!");
}
}
public ResultSet query(String sql){
try{
pre = con.prepareStatement(sql);
result = pre.executeQuery();
}catch(Exception e){
System.out.println("查询异常!");
}
return result;
}
}