如何在jsp页面实现多表插入
一个页面上有三个表的数据,要实现一起提交插入数据库,表1的aid是自动生成的,所以不需要输入,插入就会有,但是这个id是表2的外键,插入表2的时候这个id不就是空嘛,我想...
一个页面上有三个表的数据,要实现一起提交插入数据库,表1的aid是自动生成的,所以不需要输入,插入就会有,但是这个id是表2的外键,插入表2的时候这个id不就是空嘛,我想是怎么在一起提交的时候让表2在数据库里也有这个id,表3跟表2也是这种关系,表3需要表2的自动增长的主键bid。
我用的是sql server2008.框架是ibatis 展开
我用的是sql server2008.框架是ibatis 展开
展开全部
你下面那些代码是用的存储过程写的 这样也可以写
但是还是有一种方法
你可以写不同的dao 比如表一、表二、表三分别对应不同的dao
然后所有的业务逻辑写在一个业务方法里面 这样的好处是事务统一处理,做到数据能一致
先插入表一数据 ,
表一实体 bean1 = new 表一实体();
dao1.insert(bean1);
表二实体 bean2= new 表二实体();
bean2.setId(bean1.getId());
dao2.insert(bean2);
表三类似
其实iBATIs有个特性 你插入成功以后 会给你实体的主键赋值的
所以 在下面的代码 可以拿到这个id 很简单的 不知道你懂了没有 不懂再问
但是还是有一种方法
你可以写不同的dao 比如表一、表二、表三分别对应不同的dao
然后所有的业务逻辑写在一个业务方法里面 这样的好处是事务统一处理,做到数据能一致
先插入表一数据 ,
表一实体 bean1 = new 表一实体();
dao1.insert(bean1);
表二实体 bean2= new 表二实体();
bean2.setId(bean1.getId());
dao2.insert(bean2);
表三类似
其实iBATIs有个特性 你插入成功以后 会给你实体的主键赋值的
所以 在下面的代码 可以拿到这个id 很简单的 不知道你懂了没有 不懂再问
更多追问追答
追问
先谢谢您,iBATIs是需要自己写SQL语句的,因为A表会自动生成一个自动增长的a_id,然后B表插入,会自动生成一个自动增长的b_id,但是B表会有个外键叫a_id,就是A表的那个a_id。因为我觉得A的a_id只有插入表里才会,所以页面上A和B表都没有那个a_id,所以B表插入的时候是怎么获取那个a_id的,我纠结在于这个。
追答
说了啊 插入b数据的时候 通过a实体 可以获取a的id a插入后 会分配一个id 会给实体id赋值
展开全部
提交的时候在生成表1后获取表1的对应行的aid列的数据,然后再插入到表2中,表3同上!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-09-20
展开全部
有先后顺序就好了啊
更多追问追答
追问
begin tran yy
insert into 表1 values (表1数据)
insert into 表2 values (表2数据,@@IDENTITY)
commit tran yy
有人给我写了个例子,这样可以吗?具体该怎么写?
追答
哦 按顺序插入 需要什么先插入什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询