Java的空指针异常又出现了

小新s23 2014-10-10 09:35:32

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class Update {

public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub

query("iuoi");//空指针异常
}



public static void delete() throws SQLException
{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


Connection conn = null;
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc1","root","");


ResultSet rs=null;
String query = "select * from exam_student";
String delete ="delete from exam_student where height=165";
PreparedStatement pr = conn.prepareStatement(delete);
int i = pr.executeUpdate();
rs=pr.executeQuery(query);


while(rs.next())
{
//System.out.println(pr.executeUpdate());
System.out.println(rs.getObject(1)+" "+i);

}
}


public static void query(String name) throws SQLException
{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


Connection conn = null;
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc1","root","");

Statement st = null;
ResultSet rs=null;
String query = "select name,str_no,height from exam_student where name='"+name+"'";
//String delete ="delete from exam_student where height=165";
//PreparedStatement pr = conn.prepareStatement(delete);
//int i = pr.executeUpdate();
rs=st.executeQuery(query);//此处抱空指针异常


while(rs.next())
{
//System.out.println(pr.executeUpdate());
System.out.println(rs.getObject(1)+" "+rs.getObject(2)+" "+rs.getObject(3));

}

}

}

...全文
524 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
calvin8789 2014-10-16
  • 打赏
  • 举报
回复
st , rs 都是null,未指定实例
mrliu0905 2014-10-15
  • 打赏
  • 举报
回复
楼主代码结构有点乱啊,一般新手不是应该把加载驱动、创建链接以及销毁放在一个工厂类里面完成吗?jdbcutils,加油小伙儿
AslenG 2014-10-15
  • 打赏
  • 举报
回复
F6一步步调试,看变量值。
lxraiyl 2014-10-14
  • 打赏
  • 举报
回复
你的Statement都没有初始化呀,肯定是报空指针异常 Statement st = conn.creatStatement();
castiel1201 2014-10-12
  • 打赏
  • 举报
回复
LS 都比较厉害啊
光明矢 2014-10-12
  • 打赏
  • 举报
回复
还是要多写代码,呵呵~
JPF1024 2014-10-11
  • 打赏
  • 举报
回复
楼上说的对,不过你可以试试apache的一个连接工具类dbutils,很方便,不用自己动手写
S_Damon 2014-10-11
  • 打赏
  • 举报
回复
Statement st =conn.createStatement();加上就行了
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
st在声明时为null,后面的代码中没有使用Connection为该变量赋值,当然会报空指针异常了
小新s23 2014-10-11
  • 打赏
  • 举报
回复
引用 7 楼 hemowolf 的回复:
楼主太懒了,空指针异常其实是最好查的错误,用eclipse或netbeans之类的IDE工具调试一下,很快就找到原因了
恩,我也是刚知道debug,对IDE不熟练,正打算搜搜怎么用
小新s23 2014-10-11
  • 打赏
  • 举报
回复
引用 1 楼 zxc1364632 的回复:
64行Statement st =conn.createStatement();
引用 2 楼 sum_rain 的回复:
楼上正解,st就没得到实例化对象,光一声明,当然空指针
引用 3 楼 a_a_a_ze 的回复:
楼上正解 statement st没有实例化,,怎么会不出错吗
引用 4 楼 sky_walker85 的回复:
st在声明时为null,后面的代码中没有使用Connection为该变量赋值,当然会报空指针异常了
引用 5 楼 sssheng0731 的回复:
Statement st =conn.createStatement();加上就行了
引用 6 楼 dcxy0 的回复:
楼上说的对,不过你可以试试apache的一个连接工具类dbutils,很方便,不用自己动手写
引用 7 楼 hemowolf 的回复:
楼主太懒了,空指针异常其实是最好查的错误,用eclipse或netbeans之类的IDE工具调试一下,很快就找到原因了
引用 8 楼 Android_iPhone 的回复:
简化一下,大约就是这样的代码 当然会报空指针异常,代码贴到Eclipse里,没运行之前就提示这个问题了 Statement st = null; rs = st.executeQuery(query);// 此处抱空指针异常
引用 9 楼 lxq_xsyu 的回复:
楼上都是正解。。。
哎,我这是咋啦,犯这种错误,让大家费心了,估计我昨天晕头了吧,还笨笨的以为是说的字符串query为空,太不应该了
lxq_xsyu 2014-10-11
  • 打赏
  • 举报
回复
楼上都是正解。。。
日知己所无 2014-10-11
  • 打赏
  • 举报
回复
简化一下,大约就是这样的代码 当然会报空指针异常,代码贴到Eclipse里,没运行之前就提示这个问题了 Statement st = null; rs = st.executeQuery(query);// 此处抱空指针异常
小灰狼 2014-10-11
  • 打赏
  • 举报
回复
楼主太懒了,空指针异常其实是最好查的错误,用eclipse或netbeans之类的IDE工具调试一下,很快就找到原因了
O_M_God 2014-10-10
  • 打赏
  • 举报
回复
楼上正解 statement st没有实例化,,怎么会不出错吗
AceShot 2014-10-10
  • 打赏
  • 举报
回复
楼上正解,st就没得到实例化对象,光一声明,当然空指针
zxc1364632 2014-10-10
  • 打赏
  • 举报
回复
64行Statement st =conn.createStatement();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧