java中,执行SQL语句问题
我需要执行两条SQL语句,往两张表插入数据,其中第一条语句插入表A,主键是用序列生成的(就是说在程序中我并不知道主键的值),只有主键能判断唯一那么我在插入第二张表B数据时...
我需要执行两条SQL语句,往两张表插入数据,其中第一条语句插入表A,主键是用序列生成的(就是说在程序中我并不知道主键的值),只有主键能判断唯一
那么我在插入第二张表B数据时,会有一个字段是外键,引用A的主键列,我怎么在插入时能知道这个外键应该是几(就是上一条SQL序列生产的值) 展开
那么我在插入第二张表B数据时,会有一个字段是外键,引用A的主键列,我怎么在插入时能知道这个外键应该是几(就是上一条SQL序列生产的值) 展开
展开全部
楼主用的是jdbc吧,在调用Connection的prepareStatement方法获得PreparedStatement时多传入PreparedStatement.RETURN_GENERATED_KEYS这个参数就好,例如PreparedStatement prepareStatement = con.prepareStatement(insertSql, PreparedStatement.RETURN_GENERATED_KEYS);
展开全部
看你操作数据库的方法了
如果能保证你是当前时间段,你是唯一操作数据库的.那么插入a表以后在selet a表,按主键倒序排列去一条.这条就是你当之前插入的,你去除主键插入到第二章表
如果能保证你是当前时间段,你是唯一操作数据库的.那么插入a表以后在selet a表,按主键倒序排列去一条.这条就是你当之前插入的,你去除主键插入到第二章表
追问
那样不太好吧,万一多个用户同时操作不就容易出错?
或者这样
declare
ids number := seq_orders_id.nextval;
begin
insert into orders values (ids ,2,2,sysdate,'test2');
end;
我能通过在java 程序里拿到 ids 这个变量的值吗
追答
java不熟.其他的语言连数据库的时候都有锁的..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没用框架的话,
是什么东西在给你生成主键啊?
他就不提供的方法去得到这个东西?
总不会让你重新查询一遍吧 -。-
是什么东西在给你生成主键啊?
他就不提供的方法去得到这个东西?
总不会让你重新查询一遍吧 -。-
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问。你用的是神马框架?
追问
初学,没框架
或者,有没有办法,在执行插入第一条记录的时候,能有返回值返回这个ID
追答
这个就难说了。因为不同的框架或者不同的数据库都有不同的返回方式啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是用JDBC吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询