xml中配置,可以使用dom4j,sax解析器
我看到不少地方使用apache的commongs digest
我看到不少地方使用apache的commongs digest
解决方案 »
- struts2中 怎么 通过javascript调用 action的方法,求高人给个例子!
- spring注入类型不匹配?:org.springframework.beans.factory.BeanCreationException
- 求高手帮忙啊,关于动态生成表单中表格的一行,并记录该行的文本框的值!
- freemarker很弱的输出问题,在线等!!
- 求解决方法!!
- 怎样取得上一个页面的地址和HTML的版本问题?
- 怎样用JSP给手机发短信
- 在线等。。。急!急!急!
- 这是什么错误(servlet)
- 怎样调试jsp程序?
- Access数据存储乱码 JAVA
- 如何获取lookupAllHostAddr的源代码
我说的xml是在外部任意路径建立一个文件
文件内容就写着与db连接的数据<?xml version="1.0" ?>
<document>
<name> String dbURL = "jdbc:postgresql://192.168.126.7:5432/NNS"</name>
<user> String user = "postgres"</user>
<password> String dbpassword = "iwamotocho"</password>
</document>不知道该如何继续呢
<?xml version="1.0" encoding="UTF-8"?>
<data>
<datasource>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://192.168.126.7:5432/NNS</url>
<username>"postgres"</username>
<password>"iwamotocho"</password>
</datasource>
</data>下边是java原来的内容
怎么改写呢
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(dbURL, user, dbpassword);//可以直接在这该吗?还是要利用别的类把xml读入??
Statement stmt = conn.createStatement();
DatabaseMetaData dbms = conn.getMetaData();
String sql = "select * from \"M社員\" where \"社員コード\"='" + textField1.getValue() + "'";//SQL查询语句
ResultSet rs = stmt.executeQuery(sql);
http://sourceforge.net/project/downloading.php?group_id=16035&filename=dom4j-1.6.1.jar然后如何取xml的数据,我做了一个例子,你看看
把你的xml命名为config.xml,然后classpath里面配置dom4j.jar的包,
然后运行下面的程序,就取出来你的db配置信息了import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*; public class GetDBInfoFromXML{
public static void main(String arge[]){
long lasting =System.currentTimeMillis();
try{
File f=new File("config.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("datasource");
for (int i=0;i<nl.getLength();i++){
String dbURL = doc.getElementsByTagName("url").item(i).getFirstChild().getNodeValue();
System.out.println(dbURL);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
因为我要查询数据
只要在你写代码下直接加入
Statement stmt = conn.createStatement();
DatabaseMetaData dbms = conn.getMetaData();
String sql = "select * from \"M社員\" where \"社員コード\"='" + textField1.getValue() + "'";//SQL查询语句
ResultSet rs = stmt.executeQuery(sql);
就可以了吗
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;public class GetDBInfoFromXML{
public static void main(String arge[]){
long lasting =System.currentTimeMillis();
try{
File f=new File("config.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("datasource");
for (int i=0;i<nl.getLength();i++){
String dbURL = doc.getElementsByTagName("url").item(i).getFirstChild().getNodeValue();
String user = doc.getElementsByTagName("username").item(i).getFirstChild().getNodeValue();
String dbpassword = doc.getElementsByTagName("password").item(i).getFirstChild().getNodeValue();
}
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(dbURL, user, dbpassword);
Statement stmt = conn.createStatement();
DatabaseMetaData dbms = conn.getMetaData();
String sql = "select * from \"M社員\" where \"社員コード\"='" + textField1.getValue() + "'";
ResultSet rs = stmt.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
}
}
}
你自己稍微改一下就可以了
那不如用一个资源文件(.property文件)来配置一下呢!
conn = DriverManager.getConnection(dbURL, user, dbpassword);
应该放到for函数里。