问题描述
public class TestJdbc { private static List<TestBean> tbs; public static void main(String[] args) { String url ="jdbc:mysql://localhost/testjdbc?user=root&password=root&useUnicode=true&characterEncoding=8859_1"; TestBean tb=new TestBean(); ResultSet rs=null; try { Connection conn= DriverManager.getConnection(url); Statement stmt=conn.createStatement(); rs=stmt.executeQuery("select * from test"); while(rs.next()){ tb.setId(rs.getLong("id")); tb.setName(rs.getString("name")); tb.setPassword(rs.getString("password")); tbs.add(tb); } for(TestBean tb1: tbs){ System.out.println(tb1.getName()); System.out.println(tb1.getPassword()); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }tbs.add(tb);报了一个 java.lang.NullPointerException。求解!!!!
解决方案
不好意思,刚才把泛型类型写错了。该问题的原因是:静态私有对象“tbs”未被初始化,楼上的代码修改得很好,也可以将这行代码“private static List<TestBean> tbs”修改成这样“private static List<TestBean> tbs = new ArrayList<TestBean>();”;。
解决方案二:
楼主人家都给你解决了,怎么还不关闭问题。不厚道
解决方案三:
该问题的原因是:静态私有对象“tbs”未被初始化,楼上的代码修改得很好,也可以将这行private static List<TestBean> tbs;代码修改成这样private static List<String> tbs = new ArrayList<String>();。
解决方案四:
public class TestJdbc { public static void main(String[] args) { String url ="jdbc:mysql://localhost/testjdbc?user=root&password=root&useUnicode=true&characterEncoding=8859_1"; List<TestBean> tbs = new ArrayList<TestBean>(); Connection conn= null; Statement stmt= null; ResultSet rs=null; try { conn= DriverManager.getConnection(url); stmt=conn.createStatement(); rs=stmt.executeQuery("select * from test"); while(rs.next()){ TestBean tb=new TestBean(); tb.setId(rs.getLong("id")); tb.setName(rs.getString("name")); tb.setPassword(rs.getString("password")); tbs.add(tb); } for(TestBean tb1: tbs){ System.out.println(tb1.getName()); System.out.println(tb1.getPassword()); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (rs != null) try { rs.close(); } catch (Exception e) { } if (stmt != null) try { stmt.close(); } catch (Exception e) { } if (conn != null) try { conn.close(); } catch (Exception e) { } } }