mybatis框架的特殊问题12选足球平台出租格智学院

足球平台系统Q :12826383足球系统出租,然后分别创建B,再创建C。这些操作要在一个事务中进行,不能删完,插入失败。
结构长得如下:
{
    "id":"A1",
    "b_arr":[{
            "content":"b_123"
            "c_arr":[{
                    "content":"c_123"
                },{
                    "content":"c_456"
                }
            ]
        },{
            "content":"b_456"
            "c_arr":[{
                    "content":"c_789"
                },{
                    "content":"c_101"
                }
            ]
        }
    ]
}
解决的办法就是直接用spring+mybatis的事务管理,配置如下:
applicationContext.xml
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>
然后再对应的代码上直接足球平台出租加上注解就行了:
@Transactional
public void test(){
    // todo 操作1
    // todo 操作2
    // todo 操作3
}
只有三个操作都顺利完成,才一次性commit


2. 一次性删除多张表的数据
例子:
同上,想要在更新其中某个内容的时候,直接删除所有相关的B表数据和C表数据,为了节省时间,就放在一个sql中操作了。
delete b,c from a 
left join b on a.id = b.a_id
left join c on b.id = c.b_id
where a.id = #{id}
这样就可以根据A的一个id,同时删除B表和C表的数据了。

猜你喜欢

转载自blog.csdn.net/a68862311/article/details/80374351
今日推荐