最近在做一个小项目,牵涉到从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>
和数据库中数据比较:
到此结束,本人菜鸟,欢迎大牛们批评指正!!!