java与数据库的连接问题@

shiyanpin 2004-03-26 12:41:45
import java.sql.*;
import java.util.*;
public class chat{ //
chat()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:chatdb";
Connection con=DriverManager.getConnection(url);
}catch(Exception e)
{
System.out.println("wo ri a");
}

}
private ResultSet results;
private ResultSetMetaData rsmd;

private void display()
{
try
{
rsmd=results.getMetaData();
int numCols=rsmd.getColumnCount();
boolean more=results.next();
while(more)
{
for(int i=1;i<=numCols;i++)
System.out.print(results.getString(i)+" ");
System.out.println();
more=results.next();
}

}catch(SQLException e)
{
System.out.println("error a ");
}
}

public static void main(String[] str)
{
chat n1=new chat();
n1.display();
}
}
为什么出现 java.lang.NullPointerException

at chat.chat.display(chat.java:34)

at chat.chat.main(chat.java:54)
rsmd=results.getMetaData();为什么运行到这一句就没了
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
superholly 2004-03-26
  • 打赏
  • 举报
回复
Statement stmt=con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
//boolean b = rsmd.isSearchable(1);
tmpx 2004-03-26
  • 打赏
  • 举报
回复
先判断一下是否为空,很容易的吧
kkcncry 2004-03-26
  • 打赏
  • 举报
回复
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);

以上代码目的是返回该表中元数据的信息也就是列的信息~不知道你是不时这个意思
也正如楼上说的rs是空的肯定不行~你这样就可以了~
qm0445 2004-03-26
  • 打赏
  • 举报
回复
ikevin(菜无心) 同意!
thunderxs 2004-03-26
  • 打赏
  • 举报
回复
路过,学习
boy 2004-03-26
  • 打赏
  • 举报
回复
...

private Connection con;
private Statement stmt;
private ResultSet results;
private ResultSetMetaData rsmd;

private void display()
{
try
{
stmt = con.createStatement();
results = stmt.executeQuery("Select * From TableName");
rsmd=results.getMetaData();
int numCols=rsmd.getColumnCount();
boolean more=results.next();
while(more)
{
for(int i=1;i<=numCols;i++)
System.out.print(results.getString(i)+" ");
System.out.println();
more=results.next();
}

}catch(SQLException e)
{
System.out.println("error a ");
}
}
一点晴 2004-03-26
  • 打赏
  • 举报
回复
results是空的,当然报空指针错误。
你想取到表结构results.getMetaData();,那么results必须是个非空的结果集合。
当前你没有搜索某个表,所以无法确定操作。
参考:
Statement stmt=con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
//boolean b = rsmd.isSearchable(1);

62,623

社区成员

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

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