永发信息网

这段代码哪里错误了?

答案:4  悬赏:70  手机版
解决时间 2021-05-08 00:52
  • 提问者网友:情歌越听越心酸
  • 2021-05-07 01:15

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String title=request.getParameter("title");
String content=request.getParameter("content");

DataSource ds=null;

try{
Context context=new InitialContext();
ds= (DataSource) context
.lookup("java:/comp/env/jdbc/mysqlds");
}catch (Exception e)
{
System.out.println("数据库连接错误");
}

try {
Connection conn = ds.getConnection();
String sql="insert into users (username,userpwd) values(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1, title);
pstmt.setString(3, content);
int result=pstmt.executeUpdate();
System.out.println(result);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

请问上段代码错在哪里?

最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-05-07 02:38
这是个很哲学的问题
全部回答
  • 1楼网友:廢物販賣機
  • 2021-05-07 04:38

错误提示很明显是空指针异常,发生在Blogserver.java的第46行。

你仔细看下你的程序在那里是不是没有取到值。

可以使用DeBug的方式,也可以在使用那个对象的代码上面加上println();打印出对象的值。

逐步确定出错原因~~~~

因为不知道你的46行到底是什么代码,我猜测一下:

--------------------------------------------------------------

ds= (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds");

在上面这句代码下面加上:

println(ds); 打印ds是否为空,在这可能发生空指针异常。

------------------------------------------------------------------

Connection conn = ds.getConnection(); 在这句代码下面加上:

println(conn); 打印conn是否为空,在这也可能发生空指针异常。 -------------------------------------------------------------------------

因为只能看到这么多代码,也就只能这样判断了。你试下~~~

  • 2楼网友:不如潦草
  • 2021-05-07 04:15

是第一个catch 报的异常 还是第二个

  • 3楼网友:过活
  • 2021-05-07 03:40
pstmt.setString(3, content);改成pstmt.setString(2, content);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯