java写入读取xml文件

zhouxiaobo321 2009-03-18 09:59:32
每天晚上12点定时从数据库查询最近一个月数据写入到xml文件中,以后查询时直接在xml中查询显示数据!
快来高手救急了!!!!!!
...全文
448 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kokobox 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhouxiaobo321 的回复:]
在读取xml文件的时候可以按条件来读取吗?就想sql语句那样带条件读取
[/Quote]

可以,你看一下关于xpath的相关资料吧



kokobox 2009-03-19
  • 打赏
  • 举报
回复
定时器就不说了

写xml后,在xml中用xpath搜索一下一下就可以了,很简单

解析xml的框架有很多,随便一个就好了,别太挑剔了
zhouxiaobo321 2009-03-19
  • 打赏
  • 举报
回复
在读取xml文件的时候可以按条件来读取吗?就想sql语句那样带条件读取
M_song 2009-03-19
  • 打赏
  • 举报
回复
TimeTask,写入xml,除了上面说的,也可以用JAXB!
老紫竹 2009-03-19
  • 打赏
  • 举报
回复
定时?你用TimeTask 或者Quartor好了

至于读取数据库,不用别人教你了吧!

写入和读取xml,这个你参考这个看看

java中(DOM,SAX,JDOM,DOM4J)操作xml方式的比较和代码示例



zm881210 2009-03-19
  • 打赏
  • 举报
回复
用jdom可以实现哦!

package com.comm;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;


public class BaseDao {

private Connection conn;
private Statement stam;
private ResultSet rs;
private static BaseDao basedao=null;
private BaseDao(){}

public static BaseDao getBaseDao(){

if(basedao==null){
basedao=new BaseDao();
}
return basedao;
}

public Connection getConnection() throws Exception{

DbUtils.loadDriver("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/student","root","admin");
return conn;
}

public void getClose()throws Exception{

if(rs!=null){
rs.close();
rs=null;
}
if(stam!=null){
stam.close();
stam=null;
}
if(conn!=null){
conn.close();
conn=null;
}
}

public ResultSet queryObject(String sql) throws Exception{

conn=this.getConnection();
Statement stam=conn.createStatement();
rs=stam.executeQuery(sql);
return rs;
}

public List query(String sql,Class c) throws Exception{

conn=this.getConnection();
QueryRunner qr=new QueryRunner();
List list=(List)qr.query(conn,sql,new BeanListHandler(c));
DbUtils.close(conn);
return list;
}

public boolean updateObject(String sql) throws Exception{

conn=this.getConnection();
stam=conn.createStatement();
int rows=stam.executeUpdate(sql);
this.getClose();
return rows>0?true:false;
}

}


package com.utils;

import java.io.FileOutputStream;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

import com.comm.BaseDao;

public class CreateXml {

//一个生成相应的xml文档方法
public void createXml(String sql,String rootname,String targetname,String path) throws Exception{

ResultSet rs=BaseDao.getBaseDao().queryObject(sql);
Document document=new Document(new Element(rootname));
ResultSetMetaData rsmd=rs.getMetaData();
int rowNumber=rsmd.getColumnCount();
while(rs.next()){
Element element0=new Element(targetname);
document.getRootElement().addContent(element0);
for(int i=1;i<=rowNumber;i++){
String data=new String(rs.getString(i).getBytes("ISO-8859-1"),"gbk");
Element element=new Element(rsmd.getColumnName(i)).setText(data);
element0.addContent(element);
}
}
BaseDao.getBaseDao().getClose();
XMLOutputter xmlout=new XMLOutputter();
xmlout.output(document,new FileOutputStream(path));

}

}

//哈哈!我也是新学到的,我一个朋友写的!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧