java获取字段类型_Java中获取自动产生类型的字段的集合

我们向数据库中插入数据的时候,如果有一个字段的类型是auto_increment(Mysql中的数据类型,其他数据库类似),我们插入的时候value应该为null,这个大家都知道,但是如果这张表中还有另外一个字段,它的类型不是auto_increment,但他的值必须要等于这条记录的auto_increment字段的值怎么办?具体有如下示例:

Table_Name:Test

Table_Column:id(auto_increment)title(varchar(255))cont(text)rootid(int)

在这张表中,我们插入数据的时候Statement可能是这样的:

insertintoTestvalues(null,'testTitle','testCont',?);

?代表rootid的值,如果我们现在要求rootid必须等于id,那请问rootid的值该怎么确定呢?

SolutionInJava:

先为rootid插入一个常量值:

Stringsql="insertintoTestvalues(null,'testTitle','testCont',-1)";

pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

pstmt.executeUpdate();

然后获取

ResultSetrsKey=pstmt.getGeneratedKeys();

rsKey.next();

intkey=rsKey.getInt(1);

sql="updateTestsetrootid="+key+"whereid="+key;

pstmt=conn.prepareStatement(sql);

pstmt.executeUpdate();

reKey.close();

pstmt.close();

conn.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值