JDBC对数据库的操作问题,也许一句话就能解决问题的. (300分)

  • 主题发起人 主题发起人 dedema
  • 开始时间 开始时间
D

dedema

Unregistered / Unconfirmed
GUEST, unregistred user!
当在java数据库的新增操作中,使用moveToInsertRow,然后进行各个updateXXX,最后insertRow就把数据保存起来了,这时对是自增的字段,只要不去updateXXX,就可以的.那么我想接下来马上取得刚被保存起来的数据行,怎么办?比如我要取得一个自增的ID值.
在rset.insertRow();之后
rset.moveToCurrentRow();
rset.afterLast();
rset.first();
rset.last();
rset.refreshRow();
Object objxxx=rset.getObject(1);
都己试过.均报异常的.
 
package mydata;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import java.sql.*;

public class Bean1 {
java.sql.Connection conn=null;
java.sql.ResultSet rs=null;
java.sql.Statement stat=null;
public Bean1() {
try
{
java.lang.Class.forName("oracle.jdbc.driver.OracleDriver");
conn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORA817","system","manager");
stat=conn.createStatement();
}
catch (Exception e)
{
System.out.println("Err" + e.getMessage());
}
}
public void db()
{
try{
stat.execute("insert into yw_ycrz.czy values ('123','121','1331','121')");
conn.commit();
rs=stat.executeQuery("select * from yw_ycrz.czy where id='"+123+"'");
while (rs.next())
{
//System.out.println(rs.getString(0));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
System.out.println(rs.getString(4));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
public static void main(String[] args)
{
Bean1 t =new Bean1();
t.db();
}
}
 
忘了说明,数据库是Sql Server2000,操作系统是Windows2000,
数据可以正常地存入和取出,但就是希望,能在插入数据后,不用其它
查询手段,而是用一个简单的命令,就可以定位到刚插入的数据行.
 
在trigger中
select a.*
from a
join INSERTED b on a.id=b.id
 
好办法,但还不是java的解决之道的.
 
听可!!:)
 
得先交学费的!
 
把代码帖出来!!
 
标记一下。
 
多人接受答案了。
 
后退
顶部