关于网友提出的“ sql连接的NullPointerException错误问题求助。”问题疑问,本网通过在网上对“ sql连接的NullPointerException错误问题求助。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: sql连接的NullPointerException错误问题求助。
描述: 以下是我的程序的片断:
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection oraconn = DriverManager.getConnection("jdbc:oracle:thin:@172.16.80.100:1521:ORLC","dbuser", "pass");
Statement orastmt = oraconn.createStatement();
DriverManager.registerDriver( new com.microsoft.jdbc.sqlserver.SQLServerDriver());
Connection msconn =DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.10.13:1433","dbuser","pass");
Statement msstmt = msconn.createStatement();
ResultSet msrs = msstmt.executeQuery("select * from xmjbxx");
ResultSetMetaData rsmd = msrs.getMetaData();
Integer colcount= rsmd.getColumnCount();
while (msrs.next())
{
StringBuffer insertsql=new StringBuffer("insert into xmjbxx value(");
for ( int i=1;i<>
{
insertsql.append(msrs.getObject(i).toString()+",");
}
insertsql.append(msrs.getObject(colcount).toString()+")");
System.out.println(insertsql.toString());
orastmt.execute(insertsql);
}
}catch(SQLException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}
目的是把一个MS SQL数据库中的一个表数据全部迁移到Oracle数据库的相同表中,但在执行中出现
java.lang.NullPointerException
at oracle.ximter.com.oratest.main(oratest.java:36)
而36行就是insertsql.append(msrs.getObject(i).toString()+",");这一行这是哪儿出错了?
我在Eclipse中调试下看到第一次insertsql中是有取到数据的,Eclipse我不太熟。
项目急,很郁闷!!!
解决方案1: for ( int i=1;i<>
{
insertsql.append(msrs.getObject(i).toString()+",");
}
for循环中的i应该是<=colcount-1 或者<>
否则只循环colcount-2次啊。
解决方案2: Integer colcount= rsmd.getColumnCount();
while (msrs.next())
{
StringBuffer insertsql=new StringBuffer("insert into xmjbxx value(");
for ( int i=0;i<>
{
insertsql.append(msrs.getObject(i).toString()+",");
}
insertsql.append(msrs.getObject(colcount-1).toString()+")");
以上介绍了“ sql连接的NullPointerException错误问题求助。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1913190.html