无法将Java.sql.statement中的executeQuery(Java.lang.string)应用于()
一个简单的程序,想把数据库里的表输出,我是初学者,用sevelet做的,高手给我看看怎么回事,错误就是题目叙述的。能不能告诉我怎么输出数据库里的内容啊,我用的是mysql...
一个简单的程序,想把数据库里的表输出,我是初学者,用sevelet做的,高手给我看看怎么回事,错误就是题目叙述的。能不能告诉我怎么输出数据库里的内容啊,我用的是mysql,谢谢
部分代码:
package com.tsinghua;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Allbooks extends HttpServlet {
//处理get请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){
//业务逻辑
Connection ct=null;
Statement ps=null;
ResultSet rs=null;
try {
//从session中得到用户名
HttpSession hs=req.getSession(true);
String myName=(String)hs.getAttribute("name");
if(myName==null){
//返回登陆界面
res.sendRedirect("err");
return;
}
//得到用户名和密码
String u=req.getParameter("uname");
String p=req.getParameter("pass");
//连接数据库
//中文乱码
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.println("<html>");
pw.println("<body bgcolor=#CED3FF>");
pw.println("<img src=imgs/logo.gif><hr><center>");
pw.println("<h1>以下所有的图书</h1>");
pw.println("</center><hr><img src=imgs/mylogo.gif>");
pw.println("<form action=wel method=post>");
pw.println("<input type=submit value=回到首页><br>");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
Class.forName("com.mysql.jdbc.Driver");
// 得到连接
ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/spdb1","root", "root");
//创建一个Statement
ps=ct.prepareStatement("select * from users;");
rs=ps.executeQuery();
pw.println("<table border=1>");
pw.println("<th>编号</th><th>书名</th><th>出版社</th><th>作者</th><th>时间</th>");
while(rs.next()){
pw.println("<tr>");
pw.println("<td>"+rs.getInt(1)+"</td>");
pw.println("<td>"+rs.getString(2)+"</td>");
pw.println("<td>"+rs.getString(3)+"</td>");
pw.println("<td>"+rs.getString(4)+"</td>");
pw.println("<td>"+rs.getInt(5)+"</td>");
pw.println("</tr>");
}
pw.println("<table >");
}
catch (Exception ex) {
ex.printStackTrace();
}
finally{
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(ct!=null){
ct.close();
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
//处理post请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
不要怪我小气,我真没分了,对不起,恳求帮助 展开
部分代码:
package com.tsinghua;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Allbooks extends HttpServlet {
//处理get请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){
//业务逻辑
Connection ct=null;
Statement ps=null;
ResultSet rs=null;
try {
//从session中得到用户名
HttpSession hs=req.getSession(true);
String myName=(String)hs.getAttribute("name");
if(myName==null){
//返回登陆界面
res.sendRedirect("err");
return;
}
//得到用户名和密码
String u=req.getParameter("uname");
String p=req.getParameter("pass");
//连接数据库
//中文乱码
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.println("<html>");
pw.println("<body bgcolor=#CED3FF>");
pw.println("<img src=imgs/logo.gif><hr><center>");
pw.println("<h1>以下所有的图书</h1>");
pw.println("</center><hr><img src=imgs/mylogo.gif>");
pw.println("<form action=wel method=post>");
pw.println("<input type=submit value=回到首页><br>");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
Class.forName("com.mysql.jdbc.Driver");
// 得到连接
ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/spdb1","root", "root");
//创建一个Statement
ps=ct.prepareStatement("select * from users;");
rs=ps.executeQuery();
pw.println("<table border=1>");
pw.println("<th>编号</th><th>书名</th><th>出版社</th><th>作者</th><th>时间</th>");
while(rs.next()){
pw.println("<tr>");
pw.println("<td>"+rs.getInt(1)+"</td>");
pw.println("<td>"+rs.getString(2)+"</td>");
pw.println("<td>"+rs.getString(3)+"</td>");
pw.println("<td>"+rs.getString(4)+"</td>");
pw.println("<td>"+rs.getInt(5)+"</td>");
pw.println("</tr>");
}
pw.println("<table >");
}
catch (Exception ex) {
ex.printStackTrace();
}
finally{
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(ct!=null){
ct.close();
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
//处理post请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
不要怪我小气,我真没分了,对不起,恳求帮助 展开
展开全部
1,lz是粗心造成的,你在上面明显定义的是statement,在下面用的时候又变成prepareStatement了;
2,建议在导包的时候尽量避免使用"*",用一个包就导一个包,便于排错;
3,学习阶段也要有意思的加强代码规范的学习啊,多去一些比较好的论坛,看看那些比较有经验的人写的代码,因为code也是一种艺术哦!
2,建议在导包的时候尽量避免使用"*",用一个包就导一个包,便于排错;
3,学习阶段也要有意思的加强代码规范的学习啊,多去一些比较好的论坛,看看那些比较有经验的人写的代码,因为code也是一种艺术哦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询