java.sql.SQLException: Can not issue data manipulation statements with executeQuery().

java.sql.SQLException: Can not issue data manipulation statements with executeQuery().

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)

    atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)

    atcom.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:463)

    atcom.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1324)

    atcom.test.database.DBManager.query(DBManager.java:81)


今天跑测试代码的时候遇到了这个问题,

网上搜索的时候,看到了这个博客↓

http://blog.csdn.net/cherishme1988/article/details/7399225


于是我就试了一下,不过我没有execute这个函数,我的DBManager里面定义的一个是update,一个是query函数,

之前也没有注意,两个函数内容写的比较相近:

public ResultSet query(String sql) {
		ResultSet rst = null;
		Statement stmt = getStatement();
		System.out.println("stmt = " + stmt);
		try {
			rst = stmt.executeQuery(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return rst;
	}
	
public int update(String sql) {
		Statement stmt = getStatement();
		int result = 0;
		try {
			result = stmt.executeUpdate(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}
	

就没注意是用了哪个,反正都是执行我传入的sql,

今天报错了才发现,其实是因为这两个函数的返回值不同,一个是返回了int,一个是返回了ResultSet,用的时候不一样,还是有区别的,

我把我的  db.query(sql)改成了 db.update(sql)之后,果然就不报错了~

以后编程多长个心眼儿啊~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值