****import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import java.sql.*;
public class Yz extends HttpServlet
{
public void doPost(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException
{
req.setCharacterEncoding("utf-8");
PrintWriter out=res.getWriter();
Connection ct=null;
PreparedStatement ps=null;
ResultSet rs=null;
String id=req.getParameter("id");
String mm=req.getParameter("mm");
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:oraclell","scott","qw123");
ps=ct.prepareStatement("select * from users where id=? and pwod=? ");
_//如果把上面改成ct.prepareStatement(”select * from users”) 的话就能用rs.getString(“id”)输出//_
out.println("ss");
ps.setString(1,id);
ps.setString(2,mm);
rs=ps.executeQuery();
if(rs.next())
{
req.getRequestDispatcher("/Hy").forward(req, res);
}else
{
req.getRequestDispatcher("/Tz").forward(req, res);
}
while(rs.next())
{
out.println(rs.getString("id"));
}
}catch(Exception e)
{
}finally
{
}
}
}这是代码
如果ct.prepareStatement(”select * from users”) 的话就能用out.println(rs.getString(“id”))输出
貌似 ps=ct.prepareStatement("select * from users where id=? and pwod=? ");这句话有问题? 请高手解答 我是自学的 没有老师可以问 谢谢了
出什么错?能否把错误贴出来
ps.setString(1,id);
ps.setString(2,mm);
这两个语句set进值了么
oraclell 你的oracle 实例数据库名改了吗?你用plsql连接一下,看看你的数据实例是什么名称,要是有错误,就不错误弄出来
查询的结果只有一条记录或没有记录了
catch(Exception e)
{
}
这里面输出堆栈信息,就知道什么原因了。
谢谢大家 已经解决了 是传进去的参数类型问题 必须要跟数据库里面的类型一样才行