servlet向数据库写入数据的问题

数据源应该配置的没有问题,但是就是不能把数据写入数据库,代码如下
public class Register extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse

resp)throws IOException,ServletException
{
try{
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/forum");
Connection conn=ds.getConnection();
PrintWriter pw=resp.getWriter();
RequestDispatcher rd=req.getRequestDispatcher("register.html");
String name=req.getParameter("username");
String password=req.getParameter("password");
if(name==null||"".equals(name))
{
pw.println("请输入用户名");
rd.include(req,resp);
return;
}
if(name.length()>10)
{
pw.println("用户名长度不能超过10个字符");
rd.include(req,resp);
return;
}
if(password==null||"".equals(password))
{
pw.println("请输入密码");
rd.include(req,resp);
return;
}
String s="insert into username values(?,?)";
PreparedStatement ps=conn.prepareStatement(s);
ps.setString(1,name);
ps.setString(2,password);
ps.executeUpdate();
pw.println("注册成功");
pw.close();
}
catch(NamingException ne)
{
ne.printStackTrace();
}
catch(SQLException se)
{
se.printStackTrace();
}
}

public void doPost(HttpServletRequest req,HttpServletResponse

resp)throws IOException,ServletException
{
doGet(req,resp);
}
}
刚刚学完servlet想稍微做点东西就碰到这个问题,和书上的代码几乎没什么区别,就是不知道为什么就是不能往数据库写数据,而且连那句“注册成功”也不输出,大家帮帮忙了
没有异常,这个servlet作用是提供用户注册,将注册信息导入到数据库,当在客户端填写完信息点提交后就是什么反应都没,也没有提示有任何异常,但是数据库里还是空的没有导入数据。

刚刚我试着加了句
Statement st=conn.createStatement();
st.executeQuery("use forum");
申明使用的数据库之后就能正常运行了,有人能告诉我是怎么回事吗,实在不了解。之前看的书上的例子没有用到这句话也能正常导入数据的啊

现在已经可以正常运行了,但是我不知道在调用PreparedStatement之前为什么要调用上面那句话,书上的例子没有用到也能正常存储数据。 ps:书上的例子和我自己写的用的是2个数据库

第1个回答  2010-03-12
不知你用的是不是SQL Server数据库,sqlserver有个bug:偶尔会出现连接到默认数据库master,而不是你配置的那个数据库;解决方法可以将sqlserver的默认数据库该为你要的,或者得sql语句中指定使用那个数据库
第2个回答  2010-03-12
你是不是在客户端输入数据,然后有这个servlet分析,最后转发到register.html上啊,那你的servlet 在web.xml配置了 没有啊
相似回答
大家正在搜