首先用一个XML写入帐号密码
<?xml version="1.0" encoding="utf-8"?>
<oracle>
<user>
<name>scott</name>
<pwd>scott</pwd>
</user>
</oracle>
采用SAX解析的方式,来将其解析出来
代码如下:
首先是读取XML节点的类FromXML.java
/**
* 从XML中读取帐号密码的类
* @author yy
*
*/
public class FromXML {
static String name;
static String pwd;
public FromXML() throws Exception{
File file = new File("D:\\xmlEX\\psw.xml");
//创建SAX解析工厂对象
SAXParserFactory factory = SAXParserFactory.newInstance();
//用工厂对象生成SAX解析器对象
SAXParser sax = factory.newSAXParser();
//创建事件处理器对象
MyHander hander = new MyHander();
sax.parse(file, hander);
System.out.println(name+"---"+pwd);
}
}
接着是事件处理器对象MyHander.java
public class MyHander extends DefaultHandler{
String str;
/**
* 读取元素结束时
*/
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if(qName.equals("name")){
FromXML.name = str;
}
if(qName.equals("pwd")){
FromXML.pwd = str;
}
}
/**
* 读取到文本时
*/
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
str = new String(ch,start,length);
}
}
这样就能通过调用FromXML的构造方法来解析装有帐号密码的XML文件了,解析之后,值在FromXML的属性name和pwd中,则在最初的代码中就改进一下可得:
//从XML中提取帐号密码
FromXML f = new FromXML();
String name = f.name;
String pwd = f.pwd;
//______________________________________________________
//连接数据库,获得连接对象
Connection conn = DriverManager.getConnection(url, name, pwd);
这样便能通过XML提供帐号密码登入数据库了.. |