mysql如何在一个表中插入数据的同时,更新另一个表的数据?
2016-07-15 11:07
1091 查看
三种方案,你看看哪个比较适合你
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>
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>
相关文章推荐
- 修改MySQL用户的权限
- 安装MySQL示例数据库sakila
- MySQL添加数据库的唯一索引的几种方式~
- MySQL数据库迁移data文件夹位置
- 如何导出和导入mysql数据(数据迁移)
- 获取mysql表插入数据自增字段的值
- Win7_64位使用Mysql Odbc
- MYSQL搜索引擎
- MySQL压缩版安装配置遇到的问题及解决办法
- mysql 查看binlog日志
- mysql的备份
- MYSQL学习笔记
- SSM连接数据库Mysql的配置
- 【旧代码整理】一个PHP操作mysql的class类
- 创建mysql数据库的时候指定编码
- MYSQL简单的封装
- mysql查询正在执行的进程
- mysql命令(六)--子查询和连接
- mysql命令(五)--存储引擎
- mysql命令(三)--操作数据表中的记录