public class FirstServlet extends HttpServlet { private static final long serialVersionUID = 1L;
private XML xml = new XML() ;
public FirstServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//*************在数据库中取出数据****************//
ResultSet result = null ;
Connection con = null ;
Statement stmt = null ;
try {
xml.init() ;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
//*********建立数据库 名为flex*************//
String url = "jdbc:odbc:tests" ;
//**********换上你自己的用户名和密码信息************//
con = DriverManager.getConnection(url,"sa","123") ;
stmt = con.createStatement() ;
//**********里面建表名为USERS 具体SQL语句见附件下载**********//
result = stmt.executeQuery("select * from users") ;
} catch(Exception e) {
e.printStackTrace() ;
}
//重要:设置响应格式为XML格式
response.setContentType("text/xml") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;
String[] strs = null;
try {
while(result.next()) {
strs = new String[3] ;
strs[0] = result.getString("name") ;
strs[1] = result.getString("pwd") ;
strs[2] = result.getString("school") ;
//*****创建XMLdocument*******//
xml.create(strs) ;
}
result.close() ;
stmt.close() ;
con.close() ;
//*******写XML文件到客户端********//
xml.output(out) ;
} catch (Exception e) {
e.printStackTrace();
} }
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response) ;
}
}--------------------------------------------------------------------------------------------------------------------------
如上,这个例子中数据库操作,放在了servlet中,而我不想这样,我想把数据库操作单独拿出来,形成分层模式,看下面DAO层:public class SelectDAO {
public String[] selectInfo()
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstm = null;
String[] strs = new String[3] ;
try {
conn = DbUtil.getConn();
String sql = "select * from users";
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
while(rs.next())
{
strs[0] = rs.getString("name") ;
strs[1] = rs.getString("pwd") ;
strs[2] = rs.getString("school") ;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
try {
rs.close();
pstm.close();
conn.close();
} catch (Exception e) {
// TODO: handle exception
}
}
for (String[] it:strs) {
System.out.println(it);
}
return strs;
}
}servlet:public class TwoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private XML xml = new XML() ;
public TwoServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//重要:设置响应格式为XML格式
response.setContentType("text/xml") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;
try {
xml.init() ;//初始化
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String [] strs = new SelectDAO().selectInfo();
//*****创建XMLdocument********/
xml.create(strs); try {
xml.output(out) ;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}}这个是我改进的,问题是只显示出数据库最后一条数据来大家有什么解决的办法,告诉小弟下,谢谢了。
private XML xml = new XML() ;
public FirstServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//*************在数据库中取出数据****************//
ResultSet result = null ;
Connection con = null ;
Statement stmt = null ;
try {
xml.init() ;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
//*********建立数据库 名为flex*************//
String url = "jdbc:odbc:tests" ;
//**********换上你自己的用户名和密码信息************//
con = DriverManager.getConnection(url,"sa","123") ;
stmt = con.createStatement() ;
//**********里面建表名为USERS 具体SQL语句见附件下载**********//
result = stmt.executeQuery("select * from users") ;
} catch(Exception e) {
e.printStackTrace() ;
}
//重要:设置响应格式为XML格式
response.setContentType("text/xml") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;
String[] strs = null;
try {
while(result.next()) {
strs = new String[3] ;
strs[0] = result.getString("name") ;
strs[1] = result.getString("pwd") ;
strs[2] = result.getString("school") ;
//*****创建XMLdocument*******//
xml.create(strs) ;
}
result.close() ;
stmt.close() ;
con.close() ;
//*******写XML文件到客户端********//
xml.output(out) ;
} catch (Exception e) {
e.printStackTrace();
} }
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response) ;
}
}--------------------------------------------------------------------------------------------------------------------------
如上,这个例子中数据库操作,放在了servlet中,而我不想这样,我想把数据库操作单独拿出来,形成分层模式,看下面DAO层:public class SelectDAO {
public String[] selectInfo()
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstm = null;
String[] strs = new String[3] ;
try {
conn = DbUtil.getConn();
String sql = "select * from users";
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
while(rs.next())
{
strs[0] = rs.getString("name") ;
strs[1] = rs.getString("pwd") ;
strs[2] = rs.getString("school") ;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
try {
rs.close();
pstm.close();
conn.close();
} catch (Exception e) {
// TODO: handle exception
}
}
for (String[] it:strs) {
System.out.println(it);
}
return strs;
}
}servlet:public class TwoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private XML xml = new XML() ;
public TwoServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//重要:设置响应格式为XML格式
response.setContentType("text/xml") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;
try {
xml.init() ;//初始化
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String [] strs = new SelectDAO().selectInfo();
//*****创建XMLdocument********/
xml.create(strs); try {
xml.output(out) ;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}}这个是我改进的,问题是只显示出数据库最后一条数据来大家有什么解决的办法,告诉小弟下,谢谢了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货