(急急-在线等)大家看看

ywh005 2003-08-22 06:54:44
为什么我每次通过程序对数据库进行插入或删除等操作时,tomcat中就会出现
No ResultSet was produced
No ResultSet was produced
No ResultSet was produced
No ResultSet was produced
每进行一次操作,就新产生一条:No ResultSet was produced
我想应该是我的数据库操作的javaBean有误。我的如下:
package car;
import java.sql.*;
public class conn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:car";
Connection connect = null;
ResultSet rs = null;
public conn() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
connect = DriverManager.getConnection(sConnStr);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
}

不知是那里错了??还是程序中对处理Rst,vote,conn等有错误。使用完后没有关闭它们??????
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
seaman0916 2003-08-22
  • 打赏
  • 举报
回复
/*
* DBconn.java
*/
package Show;
import java.sql.*;
public class DBconn
{
String DBDriver="org.gjt.mm.mysql.Driver";
String ConnStr="jdbc:mysql://localhost:3306/classdb";
String MyUser="root";
String MyPassword="";
Connection conn = null;
ResultSet rs = null;
public DBconn()
{
try
{
Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("DBconn (): " + e.getMessage());
}
}

public ResultSet executeQuery(String sql) throws SQLException, Exception

{
rs = null;
try
{
conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("executeQuery:"+ex.getMessage());
return null;
}
catch(Exception e)
{
System.err.println("executeQuery:"+e.getMessage());
return null;
}
return rs;
}

public int executeUpdate(String sql)
{
int n=0;
try
{
conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt = conn.createStatement();
n=stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println("executeUpdate:"+ex.getMessage());
return n;
}
return n;
}
}

这是我写的一个 Javabean,使用的数据库是Mysql,你把他的驱动替换一下就行了!

我的executeUpdate回返回一个 int ,executeQuery我也在catch ()中返回了null,当然也可以写在finally { }中.我觉得这样的返回很容易在jsp的页面中通过返回值判断操作是否正确执行,我觉得很方便!(用if 就可搞定!)

用什么都不是一定的,希望你试试!
stars_of_leo 2003-08-22
  • 打赏
  • 举报
回复
如果你只想通过SQL语句来操作数据库的话,可以用statement.execute(String sql)方法
试试。返回值(如果没记错的话)应该是boolean。

试试看吧,祝你成功!:)
zj2977 2003-08-22
  • 打赏
  • 举报
回复
你的bean中应该加一个方法executeUpdate()且没有返回值即void,这样调用mybean.executeUpdate()就不会出错了,查询时先申明ResultSet rs=null;
然后rs=mybean.executeQuery();就可以搞定一切了
祝你成功哦!
study_body 2003-08-22
  • 打赏
  • 举报
回复
插入和删除应该使用
connection.executeUpdate();
而且没有返回值

81,092

社区成员

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

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