中的ID号(自动增长),是在MS_SQL SERVER,应该怎么办?JSP有函数可以获得么?
11 个解决方案
#1
String sql = "INSERT TableName ( x,x,x... ) VALUES(?,?,?,?,?,?) SELECT SCOPE_IDENTITY() AS 'obj_id'";
pstmt = con.prepareStatement(sql);
pstmt.setXXX()
.
.
.
.
ResultSet rs = pstmt.executeQuery();
pstmt = con.prepareStatement(sql);
pstmt.setXXX()
.
.
.
.
ResultSet rs = pstmt.executeQuery();
#2
rs.next();
int id = rs.getInt("obj_id")
即你的id
int id = rs.getInt("obj_id")
即你的id
#3
你查询倒着排序
取第一条记录就应该是你要的
取第一条记录就应该是你要的
#4
rs.refreshRow();
rs.getInt("id");
rs.getInt("id");
#5
如果不止一个人在输入数据,你的数据并不一定是最后一条?怎么办?
应该插入一个唯一的数作为主键。
或者先对表锁定,待插入完成后再解锁
应该插入一个唯一的数作为主键。
或者先对表锁定,待插入完成后再解锁
#6
我先试试,听同学说PHP里有一个函数可以对MY SQL插入后立即获得这个插入的ID,JSP中有么?
#7
因为是在插入以后马上就检索
应该不会超过一秒
所以在并发不是很多的情况下
应该不会出错
应该不会超过一秒
所以在并发不是很多的情况下
应该不会出错
#8
真ft.
我回复了这么多次,都失败!!!
呵呵,不知道你们还在争什么,
String sql = "INSERT TableName (xxx) VALUES(???) SELECT SCOPE_IDENTITY() AS 'obj_id'";
这句话就是插入完数据然后取它的自增id .
有什么问题吗?
我回复了这么多次,都失败!!!
呵呵,不知道你们还在争什么,
String sql = "INSERT TableName (xxx) VALUES(???) SELECT SCOPE_IDENTITY() AS 'obj_id'";
这句话就是插入完数据然后取它的自增id .
有什么问题吗?
#9
收藏
还有这好东西呢
以前都没用过:)
还有这好东西呢
以前都没用过:)
#10
我的记录集怎么不能返回?
//将记录写入数据库
代码如下:
strSql="INSERT INTO t_bbscontent(btitle,bmasterid,bbsid,content,provide_time,"+
"reply_time,click_time,emote,type,chenji,breplytime) "+
"VALUES('"+strTitle+"','"+strUserid+"','"+ibbsId+"','"+strContent+"','"+
strDate+"',"+iReplytimes+","+iClicktimes+",'"+strEmote+"',"+
iType+","+iChenji+",'"+strDate+"') SELECT SCOPE_IDENTITY() AS obj_id";
//--------------
Connection conn=null;
Statement stmt=null;
ResultSet rsInsertId=null;
String url="jdbc:odbc:BBsnet";
int iInsertId=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rsInsertId=stmt.executeQuery(strSql);
//获得刚输入的记录的编号:
if(rsInsertId.next())
iInsertId=rsInsertId.getInt("obj_id"); //--
rsInsertId.close();
}
catch(ClassNotFoundException cnfex)
{
cnfex.printStackTrace();
}
catch(SQLException sqlex)
{
sqlex.printStackTrace();
}
//--------------
我看了数据库,发现记录已经插入,但是iInsertId不能返回?这是为什么?
//将记录写入数据库
代码如下:
strSql="INSERT INTO t_bbscontent(btitle,bmasterid,bbsid,content,provide_time,"+
"reply_time,click_time,emote,type,chenji,breplytime) "+
"VALUES('"+strTitle+"','"+strUserid+"','"+ibbsId+"','"+strContent+"','"+
strDate+"',"+iReplytimes+","+iClicktimes+",'"+strEmote+"',"+
iType+","+iChenji+",'"+strDate+"') SELECT SCOPE_IDENTITY() AS obj_id";
//--------------
Connection conn=null;
Statement stmt=null;
ResultSet rsInsertId=null;
String url="jdbc:odbc:BBsnet";
int iInsertId=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rsInsertId=stmt.executeQuery(strSql);
//获得刚输入的记录的编号:
if(rsInsertId.next())
iInsertId=rsInsertId.getInt("obj_id"); //--
rsInsertId.close();
}
catch(ClassNotFoundException cnfex)
{
cnfex.printStackTrace();
}
catch(SQLException sqlex)
{
sqlex.printStackTrace();
}
//--------------
我看了数据库,发现记录已经插入,但是iInsertId不能返回?这是为什么?
#11
up
#1
String sql = "INSERT TableName ( x,x,x... ) VALUES(?,?,?,?,?,?) SELECT SCOPE_IDENTITY() AS 'obj_id'";
pstmt = con.prepareStatement(sql);
pstmt.setXXX()
.
.
.
.
ResultSet rs = pstmt.executeQuery();
pstmt = con.prepareStatement(sql);
pstmt.setXXX()
.
.
.
.
ResultSet rs = pstmt.executeQuery();
#2
rs.next();
int id = rs.getInt("obj_id")
即你的id
int id = rs.getInt("obj_id")
即你的id
#3
你查询倒着排序
取第一条记录就应该是你要的
取第一条记录就应该是你要的
#4
rs.refreshRow();
rs.getInt("id");
rs.getInt("id");
#5
如果不止一个人在输入数据,你的数据并不一定是最后一条?怎么办?
应该插入一个唯一的数作为主键。
或者先对表锁定,待插入完成后再解锁
应该插入一个唯一的数作为主键。
或者先对表锁定,待插入完成后再解锁
#6
我先试试,听同学说PHP里有一个函数可以对MY SQL插入后立即获得这个插入的ID,JSP中有么?
#7
因为是在插入以后马上就检索
应该不会超过一秒
所以在并发不是很多的情况下
应该不会出错
应该不会超过一秒
所以在并发不是很多的情况下
应该不会出错
#8
真ft.
我回复了这么多次,都失败!!!
呵呵,不知道你们还在争什么,
String sql = "INSERT TableName (xxx) VALUES(???) SELECT SCOPE_IDENTITY() AS 'obj_id'";
这句话就是插入完数据然后取它的自增id .
有什么问题吗?
我回复了这么多次,都失败!!!
呵呵,不知道你们还在争什么,
String sql = "INSERT TableName (xxx) VALUES(???) SELECT SCOPE_IDENTITY() AS 'obj_id'";
这句话就是插入完数据然后取它的自增id .
有什么问题吗?
#9
收藏
还有这好东西呢
以前都没用过:)
还有这好东西呢
以前都没用过:)
#10
我的记录集怎么不能返回?
//将记录写入数据库
代码如下:
strSql="INSERT INTO t_bbscontent(btitle,bmasterid,bbsid,content,provide_time,"+
"reply_time,click_time,emote,type,chenji,breplytime) "+
"VALUES('"+strTitle+"','"+strUserid+"','"+ibbsId+"','"+strContent+"','"+
strDate+"',"+iReplytimes+","+iClicktimes+",'"+strEmote+"',"+
iType+","+iChenji+",'"+strDate+"') SELECT SCOPE_IDENTITY() AS obj_id";
//--------------
Connection conn=null;
Statement stmt=null;
ResultSet rsInsertId=null;
String url="jdbc:odbc:BBsnet";
int iInsertId=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rsInsertId=stmt.executeQuery(strSql);
//获得刚输入的记录的编号:
if(rsInsertId.next())
iInsertId=rsInsertId.getInt("obj_id"); //--
rsInsertId.close();
}
catch(ClassNotFoundException cnfex)
{
cnfex.printStackTrace();
}
catch(SQLException sqlex)
{
sqlex.printStackTrace();
}
//--------------
我看了数据库,发现记录已经插入,但是iInsertId不能返回?这是为什么?
//将记录写入数据库
代码如下:
strSql="INSERT INTO t_bbscontent(btitle,bmasterid,bbsid,content,provide_time,"+
"reply_time,click_time,emote,type,chenji,breplytime) "+
"VALUES('"+strTitle+"','"+strUserid+"','"+ibbsId+"','"+strContent+"','"+
strDate+"',"+iReplytimes+","+iClicktimes+",'"+strEmote+"',"+
iType+","+iChenji+",'"+strDate+"') SELECT SCOPE_IDENTITY() AS obj_id";
//--------------
Connection conn=null;
Statement stmt=null;
ResultSet rsInsertId=null;
String url="jdbc:odbc:BBsnet";
int iInsertId=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rsInsertId=stmt.executeQuery(strSql);
//获得刚输入的记录的编号:
if(rsInsertId.next())
iInsertId=rsInsertId.getInt("obj_id"); //--
rsInsertId.close();
}
catch(ClassNotFoundException cnfex)
{
cnfex.printStackTrace();
}
catch(SQLException sqlex)
{
sqlex.printStackTrace();
}
//--------------
我看了数据库,发现记录已经插入,但是iInsertId不能返回?这是为什么?
#11
up