Servlet将数据库文件生成XML文件

来源:互联网 发布:怎么看金十数据k 编辑:程序博客网 时间:2024/05/22 14:24
 

最近在做一个小项目,牵涉到从Android客户端读取服务器端MySQL数据库,当数据量大时考虑将数据库文件生成XML文件,然后再从Android客户端解析XML文件得到数据,下面将用Servlet将数据库文件生成XML文件的方法和大家分享一下。

首先随便新建一个数据库和表,如图:

在MyEclipse里新建WEB项目TestDemo,如图:

新建Servlet

去除Servlet/JSP Mapping URL中的 /servlet

Finish:

其中web.xml中已自动配置,将自动生成文件全部去除,在doGet()和doPost()方法里写入操作语句,下面会给出里面的详细代码

下面我们写DataBase的连接类,DataBaseConn.java

文件结构如图:

在DataBaseConn类中写入连接数据库的方法

package nyist.tian.db;import java.sql.Connection;import java.sql.DriverManager;public class DataBaseConn {private Connection cn;public Connection GetConn() {try {String driverName = "com.mysql.jdbc.Driver";String userName = "root";String userPasswd = "12345";String db = "maillist";String url = "jdbc:mysql://localhost/" + db + "?user=" + userName+ "&password=" + userPasswd;Class.forName(driverName).newInstance();cn = (Connection) DriverManager.getConnection(url);} catch (Exception e) {e.printStackTrace();}return cn;}}

这里牵涉到数据库连接,想必大家都很熟练了,下面是Servlet类中的代码:

package nyist.tian.servlet;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import nyist.tian.db.DataBaseConn;public class Test extends HttpServlet {private Connection ct;private Statement st;private ResultSet rs;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String nameString="test.xml";String dir="D:/apache-tomcat-6.0.32";try {File file=new File(dir, nameString);if(!file.isFile()){file.createNewFile();ct=new DataBaseConn().GetConn();st=ct.createStatement();rs=st.executeQuery("select name,phone,address from userInfo");FileWriter fw = new FileWriter(file);fw.write("<?xml version=\"1.0\" encoding=\"gb2312\"?>");fw.write("<infos>");while(rs.next()){fw.write("<info>");fw.write("<a>");fw.write(rs.getString(1));fw.write("</a>");fw.write("<v>");fw.write(rs.getString(2));fw.write("</v>");fw.write("<x>");fw.write(rs.getString(3));fw.write("</x>");fw.write("</info>");}fw.write("</infos>");fw.flush();fw.close();}} catch (Exception e) {e.printStackTrace();}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);}}

最后别忘了添加MySQL驱动,将MySQL驱动包添加到WEB-INF文件夹下的lib文件夹中。



配置,启动Tomcat服务器,在浏览器中输入http://localhost:8080/TestDemo/Test

进入指定文件夹下查看

打开test.xml文件,得到结果

<?xml version="1.0" encoding="gb2312"?><infos><info><a>tian</a><v>12346568485</v><x>dbjkabda</x></info><info><a>zhou</a><v>4531654</v><x>dakjhdfak</x></info></infos>

和数据库中数据比较:

到此结束,本人菜鸟,欢迎大牛们批评指正!!!