900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mysql如何在一个表中插入数据的同时 更新另一个表的数据?

mysql如何在一个表中插入数据的同时 更新另一个表的数据?

时间:2024-06-29 13:55:08

相关推荐

mysql如何在一个表中插入数据的同时 更新另一个表的数据?

三种方案,你看看哪个比较适合你

1,适用于学生: 写两个方法,一个新增一个更新,在新增完了以后马上去查询一下,按主键倒叙排列,取到最新插入的id,前提主键是自增的且不是uuid,然后把查到的主键返回出去作为形参让更新方法接收到,然后更新即可.

2,适用于ssh框架: 写两个事务,事务的传播特性是REQUIRED.添加的事务实现序列化(synchronized)

public Serializable Long saveOoxx(Object obj){

// 之前已有session工厂工具类,直接拿即可,不用另开

Session session = getSession();

// 对象封装 略...

Serializable oId = session.save(obj);

// 具体业务逻辑 略...

return (Long)oId; // 把这个扔出去就可以了

// 为什么一定要实现序列化?看java基础,百度会告诉你的

}

save之后返回值就是你之前save进数据库表的主键,将他返回出来,传给update事务,更新即可

3,适用于中高端人士,也是现在主流的解决方案,基础没过关的请参考1.2:配置一个触发器,以下我只简单介绍一下时间类触发器,具体应用还是自己想办法吧,不能全说了.....

<bean id = "你自己的工作类" class = "包名.类名.方法名"></bean>

<!-- 定义调用对象和调用对象的方法 -->

<bean id="jobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<!-- 调用的类 -->

<property name="targetObject">

<ref bean="quartzJob"/>

</property>

<!-- 调用类中的方法 -->

<property name="targetMethod">

<value>work</value>

</property>

</bean>

<!-- 定义触发时间 -->

<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail">

<ref bean="jobTask"/>

</property>

<!-- cron表达式 -->

<property name="cronExpression">

<!-- 30分钟一次 -->

<value>0 */30 * * * ? </value>

</property>

</bean>

<!-- 最后需要配置一个总管理类 -- >

<!-- lazy-init="false"则容器一旦被实例化则自动开始计时 -- >

<bean id="startQuartz" lazy-init="false" autowire="no class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="triggers">

<list>

<ref bean="doTime"/>

</list>

</property>

</bean>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。