首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

javabean里重新链接数据库后建表抛出java.lang.NullPointerException

2012-01-18 
求助:javabean里重新链接数据库后建表抛出java.lang.NullPointerException我的问题如下:在一个数据库里查

求助:javabean里重新链接数据库后建表抛出java.lang.NullPointerException
我的问题如下:在一个数据库里查到相关数据库后,重新链接另外的数据库建立数据库表。但总是出现空指针错误的问题。而这个建表操作放在第一个链接的数据库里进行却成功执行。请教各位了
代码如下。
package   com;
import   java.sql.*;
import   common.sqldatabase;

public   class   createtb   {

    public   createtb()   {
    }

    public   boolean   createtable(String   table,   String   dbname)   throws
            ClassNotFoundException,   SQLException   {
        String   tname   =   table;
        ResultSet   rs   =   null;
        sqldatabase   sqlcon   =   new   sqldatabase();
          sqldatabase   sqlcon2   =   new   sqldatabase();
        String   colname   =   new   String();
        String   coltype   =   new   String();
        String   db   =   dbname;
        //System.out.println(db);
        boolean   i=false;
        StringBuffer   sqls   =   new   StringBuffer();
        int   collen;
        //String   sqla= "use   "+db;
      //String   sqlb= ";
        String   sql1   = " ";
        String   sqlstr   =   "CREATE   TABLE   dbo. "   +   tname   +   "(wwid   varchar(20)   NOT   NULL,wwmch   varchar

(20),wwlx   varchar(20),wwsd   varchar(20),wwcflj   varchar(50),wwcd   varchar(50),wwds   varchar

(100) ";
        String   sql2   =   "select   *   from   columtable   where   tablename= ' "   +   tname   +   " '   ";
        sqls.append(sqlstr);

        try   {
            //sqlcon.setDatabaseName(db);
            sqlcon.getCon();
            rs   =   sqlcon.query(sql2);
          if(!rs.next()){   sqls.append( ") ");}
            //获取并构造数据库语句
            while   (rs.next())   {
                colname   =   rs.getString( "columname ");
                coltype   =   rs.getString( "columtype ");
                collen   =   rs.getInt( "columlen ");
                sqls.append( ", ");
                sqls.append( " "   +   colname   +   " ");
                sqls.append( "   ");
                sqls.append( " "   +   coltype   +   " ");
                sqls.append( "( "   +   collen   +   ") ");


                if   (rs.isLast())   {
                    sqls.append( ") ");
                }
            }

            sql1   =   sqls.toString();   //将stringbuffer转化为string
         
              //i=sqlcon.excute1(sql1);   //放在此处执行没问题
            sqlcon.closeConnection();
        }
        catch   (ClassNotFoundException   e1)   {
            e1.printStackTrace();
        }
        catch   (SQLException   e)   {
            e.printStackTrace();
        }
      System.out.println(sql1);
  try   {
                  sqlcon2.setDatabaseName(db);
                  sqlcon2.setUrl( "jdbc:microsoft:sqlserver://localhost:1433 ");
                  sqlcon2.setUserName( "sa ");
                  sqlcon2.setPassword( "sa ");
                  sqlcon2.getNewCon();
                 
                  i=sqlcon2.excute1(sql1);//在这里却总是提示   java.lang.NullPointerException
                    sqlcon2.closeConnection();
        }
        catch   (SQLException   e)   {
            e.printStackTrace();
        }
       
        return   i;
    }
}


[解决办法]
不知道你这个类sqldatabase怎么写的,感觉你写的程序很多都不规范,类名一般要大写,还有获得连接好象有两个方法getCon()、getNewCon(),不知道到底哪个对,还有执行查询又有两个不同的方法query()、excute1(),反正看了很乱的说

热点排行