足球平台系统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表的数据了。
结构长得如下:
{
"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表的数据了。