executeQuery可否连续使用?

dyfh 2004-10-08 03:40:43
我这么用对吗?
sSQL1="delete from a";
sSQL2="delete from b";
sSQL3="insert into a values('测试')";
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.129:1521:ly","test", "test");
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery(sSQL1);//执行SQL语句
rs=sql.executeQuery(sSQL2);
rs=sql.executeQuery(sSQL3);
rs.close();
...全文
145 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
loverisyour 2004-10-08
是啊,只有select语句才用executeQuery,delete update ,insert 应该用executeUpdate().
是啊,只有select语句才用executeQuery,delete update ,insert 应该用executeUpdate().
是啊,只有select语句才用executeQuery,delete update ,insert 应该用executeUpdate().
回复
alaal 2004-10-08
try
{
executeQuery.setConnectDataBase();
executeQuery.setAutoCommit(false);
for(int i = 0; i<moduleSize; i++)
{
if(power[i]!=null)
{
for(int j =0; j<power[i].length; j++)
{
SQL = "";
SQL += " INSERT INTO ROLEPOWER( ";
SQL += " ROLEID, ";
SQL += " MODULEID, ";
SQL += " POWERID) ";
SQL += " VALUES( ";
SQL += " '" + roleid + "', ";
SQL += " '" + power[i][j].substring(0,power[i][j].lastIndexOf(":")) + "', ";
SQL += " '" + power[i][j].substring(power[i][j].lastIndexOf(":")+1) + "') ";
iRet = executeQuery.executeInsert(SQL);
}
}
}

}
catch(Exception e)
{
e.printStackTrace();
iRet = 0;
executeQuery.rollback() ;
}

/* 插入成功 */
if(iRet == 1)
{
executeQuery.commit();
dataMap.put("message",Message.Message0001);
}

/* 插入失败 */
else
{
dataMap.put("message",Message.Message0002);
}
executeQuery.closeAll();
回复
dyfh 2004-10-08
嗯,明白了,多谢沉思和穷街
回复
dyfh 2004-10-08
BDSC如果知道正确的用法就说出来,不想说我自己去查去,不必在这里装老资格
回复
d992901 2004-10-08
是啊,只有select语句才用executeQuery,delete update ,insert 应该用executeUpdate().
回复
alaal 2004-10-08
给你个例子,好好看看

主要看commit() rollback()方法

package oajava.common.database;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class OmPreparedQuery
{
public Connection connection = null; //获得数据库连接
private Statement stmt = null; //创建语句
ResultSet rsExcutQuery = null;
boolean isConnection = true;
String strDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String strUrl = "jdbc:microsoft:sqlserver://192.168.0.24:1433;DatabaseName=zhkjoa";
String strUserName = "sa";
String strUserPassWord = "sa";
//构造函数
public OmPreparedQuery()
{
}
/**
* 功能:
* 连接数据库
* @return boolean
*/
public boolean setConnectDataBase() throws Exception
{
try
{
Class.forName(strDriver).newInstance();
connection = DriverManager.getConnection(strUrl,strUserName,strUserPassWord);
stmt = connection.createStatement();
}
catch (Exception e)
{
isConnection = false;
System.out.println("数据库连接出现如下异常:" + e.getMessage());
}
return isConnection;
}

/**
* 功能:
* 设置是否自动提交 arg = true 自动提交, arg = false 不自动提交
* @return boolean
*/
public boolean setAutoCommit(boolean arg)
{
try
{
connection.setAutoCommit(arg);
}
catch (Exception e)
{
System.out.println("设置是否自动提交出现如下异常:" + e.getMessage());
}
return isConnection;
}

/**
* 功能:
* 添加
* @param strSql sql语句
* int intRow = 1; 正常 intRow = 0; 出错
* @return int
*/
public int executeInsert(String strSql)
{
int intRow = 1; //正常
try
{
intRow = stmt.executeUpdate(strSql);
}
catch (SQLException eExcutQuery)
{
intRow = 0; //出错
System.out.println("执行添加操作出现如下异常:" + eExcutQuery.getMessage());
}
return intRow;
}

/**
* 功能:
* 查询
* @param strSql sql语句
* @return ResultSet
*/
public ResultSet executeQuery(String strSql)
{
try
{
rsExcutQuery = stmt.executeQuery(strSql);
}
catch (SQLException eExcutQuery)
{
rsExcutQuery = null;
System.out.println("执行查询操作出现如下异常:" + eExcutQuery.getMessage());
}
return rsExcutQuery;
}

/**
* 功能:
* 更新
* @param strSql sql语句
* int intRow = 1; 正常 intRow = 0; 出错
* @return int
*/
public int executeUpdate(String strSql)
{
int intRow = 1; //正常
try
{
intRow = stmt.executeUpdate(strSql);
}
catch (SQLException eExecteUpdate)
{
System.out.println("执行更新操作出现如下异常:" + eExecteUpdate.getMessage());
intRow = 0; //出错
}
return intRow;
}

/**
* 功能:
* 删除
* @param strSql sql语句
* int intRow = 1; 正常 intRow = 0; 出错
* @return int
*/
public int executeDelete(String strSql)
{
int intRow = 1; //正常
try
{
intRow = stmt.executeUpdate(strSql);
}
catch (SQLException eExecteUpdate)
{
System.out.println("执行删除操作出现如下异常:" + eExecteUpdate.getMessage());
intRow = 0; //出错
}
return intRow;
}

/**
* 功能:
* 关闭所有连接
*/
public void closeAll()
{
try
{
if(rsExcutQuery != null)
{
rsExcutQuery.close();
rsExcutQuery = null;
}

if(stmt!=null)
{
stmt.close();
stmt = null;
}

if(connection!=null)
{
connection.close();
}
}
catch(Exception e)
{
System.out.println("关闭数据出现如下异常:" + e.getMessage());
}
}

/**
* 功能:
* 提交数据
*/
public void commit()
{
try
{
connection.commit();
}
catch(Exception e)
{
System.out.println("提交数据出现如下异常:" + e.getMessage());
}
}

/**
* 功能:
* 回滚数据
*/
public void rollback()
{
try
{
connection.rollback();
}
catch(Exception e)
{
System.out.println("回滚数据出现如下异常:" + e.getMessage());
}
}

}


回复
bdsc 2004-10-08
你这几个没有一个应该用executeQuery,更谈不上"可否连续使用?"
回复
dlglmf 2004-10-08
可以,结果就是最后一次的
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告