我把大概的东西直接放到JSP中就可以正确执行,但是放到Class中就是不行,下面是我大概的代码
public class getDBconn
{
public getDBconn()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{
System.out.print("classnotfound:"+e.getMessage());
}
}
public Connection getConn(String dataname)
{
String url = dataname;
try
{
Connection conn=DriverManager.getConnection(url,"dba","sql");
}
catch(SQLException sqlexception)
{
System.out.print("----error-----:"+sqlexception.getMessage());
}
finally
{
return conn;
}
} 然后调用getdbconn public class execData
{
private getDBconn getdbconn; public execData(String dataname)
{
dataSqlAW = new getdbconn();
conn = dataSqlAW.getConn(dataname);
} public int createstmt()
{
int i = 0;
try
{
stmt = conn.createStatement();
i = 0;
}
catch(SQLException sqlexception)
{
System.out.print(sqlexception.getMessage());
i = -1;
}
finally
{
return i;
}
} public int executeData(String insert_sql)
{
int i = -1;
try
{
i = stmt.executeUpdate(insert_sql); //在这里把执行
}
catch(SQLException sqlexception)
{
System.out.print(sqlexception.getMessage());
i = -1;
}
finally
{
return i;
}
} }
sql语句绝对正确,我用COPY下来的SQL语句直接在JSP文件中执行就没有任何问题
public class getDBconn
{
public getDBconn()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{
System.out.print("classnotfound:"+e.getMessage());
}
}
public Connection getConn(String dataname)
{
String url = dataname;
try
{
Connection conn=DriverManager.getConnection(url,"dba","sql");
}
catch(SQLException sqlexception)
{
System.out.print("----error-----:"+sqlexception.getMessage());
}
finally
{
return conn;
}
} 然后调用getdbconn public class execData
{
private getDBconn getdbconn; public execData(String dataname)
{
dataSqlAW = new getdbconn();
conn = dataSqlAW.getConn(dataname);
} public int createstmt()
{
int i = 0;
try
{
stmt = conn.createStatement();
i = 0;
}
catch(SQLException sqlexception)
{
System.out.print(sqlexception.getMessage());
i = -1;
}
finally
{
return i;
}
} public int executeData(String insert_sql)
{
int i = -1;
try
{
i = stmt.executeUpdate(insert_sql); //在这里把执行
}
catch(SQLException sqlexception)
{
System.out.print(sqlexception.getMessage());
i = -1;
}
finally
{
return i;
}
} }
sql语句绝对正确,我用COPY下来的SQL语句直接在JSP文件中执行就没有任何问题
解决方案 »
- 数据量亿万时优化问题
- apache-log4j-1.2.15下载
- jsp 调用jasper 却什么都没显示出来 为什么?
- 急!!! 我自己在做尝试jsp modul1 和jsp modul2 遇到了一个问题!
- 我的论坛大家来看一看!!发表一下您的意见!!
- OutofMemory异常如何?如何处理,高手急救!
- 介绍几个学JSP的网站,顺便散分
- 怎样才能实现照片的连续播放功能 救命啊
- 有人用JAVA写过调用CMPP3.0接口的程序吗?高分请教
- 关于数据库的插入问题,谢谢
- 在用户注册例子中,想把一些已存入数据库的用户删除,可是删除不了,我遇到了麻烦,请支援!!!
- 关于痕迹保留问题!!!大侠们帮忙啊!分不够再加!!!
{
System.out.print(sqlexception.getMessage());
i = -1;
}
打出什么东西了?
{
int i = -1; //你先把这里改成0;
try
{
i = stmt.executeUpdate(insert_sql); //在这里把执行
}
catch(SQLException sqlexception)
{
System.out.print(sqlexception.getMessage());
i = -1;
}
finally
{
return i;
}
}
看看它返回多少,就知道哪里错呀了呀...
执行完之后i = stmt.executeUpdate(insert_sql);
就直接跳到了
finally
{
return i;
}
我用
try
{ System.out.print("A");
i = stmt.executeUpdate(insert_sql); //在这里把执行
System.out.print("B");
}
catch(SQLException sqlexception)
{
System.out.print("C");
System.out.print(sqlexception.getMessage());
i = -1;
}
finally
{
System.out.print("D");
return i;
}
只打出了A和D
i= stat.executeUpdate(insert_sql);
改称
catch(Exception e)
你抛出Exception了担不是SQLException
而是你没有得到Statement
我用了你们两个的方法,首先是改成
Statement stat=conn.createStatement();
i= stat.executeUpdate(insert_sql);
然后抛出Exception并printStackTrace
显示错误信息为i = stmt.executeUpdate(insert_sql);NullPointerException抛出空指针异常,stmt没有被正确创建,为什么会这样啊?
public class execData
{
private getDBconn getdbconn
private Statement stmt
public int createstmt (){
..... }
public int executedata()
{
.....
}
然后在JSP中先调用createstmt方法,在调用executedata方法现在把createstmt方法去掉,executedate方法中改为
Statement stat=conn.createStatement();
i= stat.executeUpdate(insert_sql);
然后在jsp中直接调用executedata方法
我用这样的语句
String url = "jdbc:odbc:inv001";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url,"dba","sql");
在jsp中直接连接,并executeUpdate都没有问题
我在class中的代码是把class.forName放在了getDBconn的构造函数中,然后在在getconn方法中
Connection conn=DriverManager.getConnection(url,"dba","sql");
这样就conn就为空,请问难道这样不行吗?