比如说我注册一个用户,注册成功后,应该随即取到这个用户的ID ,再根据这个用户的ID取到整个对象
1、注册成功后用用户名做为where条件,但我这里允许用户名有一致的,不行
2、insert into(...)values(...) ;select @@identity;这样也不行,执行executeUpdate()返回的是受影响的行数,不是第一行第一列的值,知道.net里是可以取到的
3、单独执行select @@identity ,也不行可能取到别人注册的用户。。
其它暂时想不到了 如何才能取到呢~?
1、注册成功后用用户名做为where条件,但我这里允许用户名有一致的,不行
2、insert into(...)values(...) ;select @@identity;这样也不行,执行executeUpdate()返回的是受影响的行数,不是第一行第一列的值,知道.net里是可以取到的
3、单独执行select @@identity ,也不行可能取到别人注册的用户。。
其它暂时想不到了 如何才能取到呢~?
解决方案 »
- 在线等.各位大大,真心求教,在做项目,JAVA 如何去操作BLOB的类型
- 关于jsp页面数据库链接操作
- pojo hibernate映射问题!!
- Java职位
- mysql数据库中的longtext字段类型怎么用?
- 网上找了好多都没能解决的问题--mysql服务器无法访问
- 如何借助Java语言和JNDI接口实现基于LDAP协议的分布式仿真资源目录管理系统?
- java中如何使用老板键
- 菜鸟问题:在运行中 command prompt 指令启动德类似DOS窗口是个什么窗口????
- Myeclipse+weblogic+struts2开发,报NativeMethodAccessorImpl.class错误
- 考试系统的算法
- 请求参数和javabean
用的是mysql数据库?设置ResultSet。TYPE_SCROLL_INSENSITIVE?先执行insert,然后就select?
如果是这样的话,问题就是是INSENSITIVE,不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。所以你select不出来。
String sql = "insert into PetInfo (pet_name,pet_sex,pet_strength,pet_cute,pet_love,pet_intro,pet_owner_name,pet_owner_email,pet_password,pet_pic,pet_type) values (1,1,1,1,1,1,1,1,1,1,1); select @@identity as rows";执行结果是可以查出的,并且返回最一条数据的ID.
.net 中是可以做的,他返回的是第一行第一列的数据 ,这里由于JAVA里没有跟它一样的方法,所以不能实现
* 添加宠物信息
*/
public int insertPet(PetInfo p) {
int id = 0;
Connection connection = null;
PreparedStatement pStatement = null;
ResultSet rSet = null; String sql = " insert into PetInfo (pet_name,pet_sex,pet_strength,pet_cute,pet_love,pet_intro,pet_owner_name,pet_owner_email,pet_password,pet_pic,pet_type) values (?,?,?,?,?,?,?,?,?,?,?) ; "; connection = ConnectionManager.getConnection();
try {
int index = 1;
pStatement = connection.prepareStatement(sql);
pStatement.setString(index++, p.getPet_name());
pStatement.setString(index++, p.getPet_sex());
pStatement.setString(index++, p.getPet_strength() + "");
pStatement.setString(index++, p.getPet_cute() + "");
pStatement.setString(index++, p.getPet_love() + "");
pStatement.setString(index++, p.getPet_intro());
pStatement.setString(index++, p.getPet_owner_name());
pStatement.setString(index++, p.getPet_owner_email());
pStatement.setString(index++, p.getPet_password());
pStatement.setString(index++, p.getPet_pic());
pStatement.setString(index++, p.getPet_type() + ""); pStatement.executeUpdate(); sql = "select @@identity as id "; pStatement = connection.prepareStatement(sql);
rSet = pStatement.executeQuery(); if (rSet.next()) {
id = rSet.getInt("id");
} /* 添加参数 */
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rSet.close();
pStatement.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } return id;
}
pStatement.executeUpdate(); sql = "select @@identity as id ";
肯定可以,我做过这道题!!
if (rSet.next()) {
id = rSet.getInt("id");
} 改成;
if (rSet.next()) {
id = rSet.getInt(1);
}