java 数据可连接失败抛出异常_数据库连接不上,总出现java.lang.NullPointerException错误...

代码如下:

package test;

import java.io.*;

import java.sql.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class DBServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

static private Connection con = null;

static private Statement st = null;

static private ResultSet rs = null;

public static Connection getConnection(){

try{

Class.forName("com.mysql.jdbc.Driver");

con=DriverManager.getConnection("jdbc:MySQL://localhost:3306/wing?user=123456&password=123456&characterEncoding=gb2312");

if(con!=null){System.out.println("连接成功!!");}

else{System.out.println("失败!!");}

} catch (ClassNotFoundException e) {e.printStackTrace();}

catch (SQLException e) {e.printStackTrace();}

return con;

}

public static ResultSet getResultSet(String sql){

con = getConnection();

try {

st = con.createStatement();

rs = st.executeQuery(sql);

} catch (SQLException e) {e.printStackTrace();}

return rs;

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。

request.setCharacterEncoding("gb2312");

PrintWriter out = response.getWriter();

String sql = "select * from wings";

rs = getResultSet(sql);

try {

out.println("

out.println("

");

out.println("

"+"学号"+"");

out.println("

"+"姓名"+"");

out.println("

"+"性别"+"");

out.println("

"+"年龄"+"");

out.println("

");

while(rs.next()){

out.println("

");

out.println("

"+rs.getInt("ID")+"");

out.println("

"+rs.getString("name")+"");

out.println("

"+rs.getString("sex")+"");

out.println("

"+rs.getInt("age")+"");

out.println("

");

}

out.println("

");

} catch (SQLException e) {e.printStackTrace();}

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

}

作者: Manlandyes

发布时间: 2010-08-26

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.lang.NullPointerException是一种在程序中常见的错误。它通常是由于对一个空对象进行操作而导致的。有几个常见的原因可以导致NullPointerException: 1. 业务层面的错误:在代码中没有正确处理对象为空的情况,例如没有进行空对象的判断就进行了操作。 2. 数据库设计问题:数据库可能存在不规范的设计、垃圾数据数据不全不合理的情况。这可能导致在程序中获取数据出现空指针异常。 3. 使用了toString()方法:如果在程序代码中需要将对象转换为字符串表示形式时,使用对象的toString()方法可能导致空指针异常。建议使用String.valueOf()方法代替toString()方法,因为String.valueOf()方法在对象为空时不会抛出异常,并会返回"null"字符串。 4. 数据库字段没有设置默认值:在数据库中,尽量将所有字段设置默认值,例如deleted字段默认为非删除状态,status字段默认为初始状态。这样可以避免在程序中操作数据库时出现空指针异常。 5. mapper文件的dao路径引用错误:在使用mapper文件访问数据库时,如果dao路径引用错误,会导致无法正确访问数据库,进而可能引发空指针异常。 为了避免空指针异常,可以采取以下措施: 1. 在代码中对所有可能为空的对象进行判断,避免在空对象上进行操作。 2. 在数据库设计中,遵循规范并尽量避免垃圾数据数据不全不合理的情况。 3. 使用String.valueOf()方法代替toString()方法,以处理对象为空的情况。 4. 在数据库中设置字段的默认值,以避免空指针异常。 5. 在使用mapper文件访问数据库时,确保dao路径引用正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值