触发器

java学习笔记——众筹项目练习——文件上传进度条、quartz石英调度

帅比萌擦擦* 提交于 2019-11-27 13:42:08
文件上传进度条 还记得在前面的文章我们实现的功能当中有文件上传的功能吗?今天我们来为文件上传美化一下,添加一个文件上传的进度条来实时显示文件上传的进度。 说干就干!实现方法很简单,也就不使用任何插件了,我们的文件上传是使用ajax实现的。那我们就在ajax中获取到文件上传的实时信息,并这些实时信息显示在Bootstrap样式库中的进度条中即可。 获取ajax上传文件时,实时的上传进度信息。 利用ajax中的xhr字段参数来实现进度条功能。 在Bootstrap样式库中找到进度条样式拷贝到我们的代码中。 将进度条样式作为一个模态框放在我们的页面中,在需要时显示和隐藏。 完成,简单吧!我们来试一试! 启动后台manager系统并登录后进入广告管理页面。 点击新增按钮添加广告图片,选择好图片后点击确定,上传图片。 因为我们的进度条在大的百分之百后会隐藏掉,速度很快,不容易截图,所以我在隐藏掉之前放置了一个alert来阻塞弹出,只要我们不关闭这个alert,进度条就会显示。 关闭alert,因为进度条已经达到了百分之百,进度条的模态框就会隐藏掉。 ok,验证完毕。 quartz石英调度 接下来我们了解一下quartz石英调度,石英调度通常用于定时任务。 石英调度: quartz:-石英;定时任务; 是由原生java完成(); quartz:非常方便的进行定时任务调度; 1、核心包 ; 2

Oracle实现主键自增的几种方式

大憨熊 提交于 2019-11-27 11:51:24
数据库作为一个系统的核心,数据库设计的1NF就是一个表结构必须有唯一约束也就是主键,Oracle数据库本身没有自增机制,不像MySQL直接使用关键字AUTO_INCREMENT自动加一,所以需要我们去自己来实现,下面有几种实现的方式 一、序列化+触发器 第一步在表结构完整的情况下创建一个序列 CREATE SEQUENCE SEQ_NAME INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999999999999999 START WITH 1 CACHE 20 第二部创建触发器 CREATE OR REPLACE TRIGGER TRIGGER_NEW BEFORE INSERT ON TABLE_NAME REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW ENABLE WHEN (NEW.ID IS NULL) BEGIN SELECT SEQ_NEW INTO : NEW.ID FROM DUAL END 二、序列+显示调用 同样先创建触发器 CREATE SEQUENCE SEQ_NAME INCREMENT BY 1 MINVALUE 1 NOMAXVALUE START WITH 1 NOCYCLE NOCACHE 下面显示调用 INSERT INTO TABLE_NAME VALUES(SEQ

mysql之触发器的简单应用

倖福魔咒の 提交于 2019-11-27 11:33:15
mysql之触发器的简单应用 例子1:添加时触发表操作 举例的是当有进出库记录时商品库存的变化触发,例如: CREATE TRIGGER `updateitemnum` AFTER INSERT ON `in_import` FOR EACH ROW if new.import_item_status= 1 then update in_item set item_num=item_num+new.import_item_num where item_id=new.import_item_id; elseif new.import_item_status=2 then update in_item set item_num=item_num-new.import_item_num where item_id=new.import_item_id; end if 如图解释 例子2:删除时触发表操作 举例当你删除某个表数据时和这个表关联的数据表里面的对应记录也删除,例如: CREATE TRIGGER `deleteorderdetail` BEFORE DELETE ON `in_order_master` FOR EACH ROW BEGIN DELETE FROM in_order_detail WHERE order_sn=old.order_sn; DELETE FROM

触发器

我只是一个虾纸丫 提交于 2019-11-27 10:52:34
基本流程: 触发器触发时,取出api_import_batch的id,去api_betting_detail去统计数据插入到api_import_total表中, 需要判断根据account1,platform,betting_date去判断数据是否存在,存在则更新,不存在则插入。 type_code字段需要联合tps_platform_info,tps_game_type表查出type_code。 select account1,platform,betting_date,sum(profit_loss),sum(real_betting_amount),sum(betting_num) from api_betting_detail where import_batch_id=1 group by account1,platform,betting_date; update api_import_total set profit_loss_amount=1,betting_amount=1,betting_amount=1,type_code='type_code',batch_id=1 where account1=1 and betting_date='' and platform=1; 数据汇总完成之后,需要对api_import_total再进行汇总一次

Quartz-第一篇认识Quartz

怎甘沉沦 提交于 2019-11-27 09:42:37
1、什么是Quartz Quartz是一个任务调度框架,借助Corn表达式,Quartz可以支持各种复杂的任务调度。JDK中也提供了简单的任务调度,java.time.Timmer。 2、Quartz运行的基本属性 quartz有一个默认的配置文件quartz.properties,放置于quartz-2.2.2.jar中的org\quartz下。如果需要改变默认的配置,可以自己创建一个,将其放置于系统的类加载路径下,ClassLoader会自动加载并启动其中的属性。 查看其中内容: # Default Properties file for use by StdSchedulerFactory # to create a Quartz Scheduler Instance, if a different # properties file is not explicitly specified. # #配置主调度器属性 org.quartz.scheduler.instanceName: DefaultQuartzScheduler org.quartz.scheduler.rmi.export: false org.quartz.scheduler.rmi.proxy: false org.quartz.scheduler

pt-online-schema-change 最佳实践(转)

我怕爱的太早我们不能终老 提交于 2019-11-27 09:37:41
pt的详细步骤 Step 1: Create the new table. Step 2: Alter the new, empty table. This should be very quick, or die if the user specified a bad alter statement. Step 3: Create the triggers to capture changes on the original table and apply them to the new table. Step 4: Copy rows. Step 5: Rename tables: orig -> old, new -> orig Step 6: Update foreign key constraints if there are child tables. Step 7: Drop the old table. DROP TABLE IF EXISTS `_xx_old` DROP TRIGGER IF EXISTS `pt_osc_xx_xx_del`; DROP TRIGGER IF EXISTS `pt_osc_xx_xx_upd`; DROP TRIGGER IF EXISTS `pt_osc_xx_xx_ins`; done 一、常用参数解读 1.0

mysql触发器

送分小仙女□ 提交于 2019-11-27 08:01:46
阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增、删、改操作记录 弊端 什么是触发器 简单的说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行; 特点及作用 特点:触发事件的操作和触发器里的SQL语句是一个事务操作,具有原子性,要么全部执行,要么都不执行; 作用:保证数据的完整性,起到约束的作用; 例子:创建触发器,记录表的增、删、改操作记录 接下来将创建user和user_history表,以及三个触发器tri_insert_user、tri_update_user、tri_delete_user,分别对应user表的增、删、改三件事; 创建user表; DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建对user表操作历史表; DROP TABLE IF

闲话WPF之十(Dependency属性 [2] )

大憨熊 提交于 2019-11-27 07:07:32
在 前一个Post 中,曾提到将要重点研究Dependency属性的三个方面:变化通知;属性值的继承;支持多个提供对象。下面,我将分别就这三个内容进行简单地说明。 【变化通知】 在任何时候,只要 Dependency 属性的值发生了变化, WPF 可以自动地根据属性的元数据触发不同的行为。前面提到过: Dependency 属性最大的特点就是内建的变化通知功能。这种内建变化通知所提供的最值得注意的就是属性触发器( Property Trigger ),就是它使用我们不需要编写任何的程序代码就能在属性变化使执行自定义行为。请看下面 XAML 编码的一个属性触发器例子: <Trigger Property=”IsMouseOver” Value=”True”> <Setter Property=”Foreground” Value=”Blue”/> </Trigger> 它的功能就是在属性值 IsMouseOver 变为 True 的时,将属性 Foreground 的值设置为 Blue 。而且,它会在 IsMouseOver 变为 False 时自动将 Foreground 的值设置为原来的值。就是这样简单的三行代码完成了我们曾经需要多个函数、变量才能实现的功能。 使用属性触发器时需要注意:触发器默认适用于每个类对象。 而且,在 WPF 3.0 中由于人为的限制, Property

oracle For循环和触发器Tigger

你说的曾经没有我的故事 提交于 2019-11-27 06:52:54
--循环 begin for cycle in (select id, testcycle from specialpapers) loop if (cycle.testcycle is null) then update specialpapers set testcycle = 48 where id = cycle.id; end if; end loop; end; for循环,是一种隐式游标,效率比较高,编写使用方便。 --触发器 create or replace trigger test before insert or update on specialpapers for each row declare -- local variables here begin if :NEW.Testcycle is null then :NEW.Testcycle := 48; end if; end test; --删除触发器 DROP TRIGGER test; --授权用户 调试权限 GRANT debug any procedure, debug connect session TO username 来源: CSDN 作者: sensenlin91 链接: https://blog.csdn.net/sensenlin91/article/details

Quartz 触发器(SimpleTrigger&CronTrigger )配置说明 & cronExpression表达式 转

家住魔仙堡 提交于 2019-11-27 04:17:12
转自: http://djkin.iteye.com/blog/1714323 每天8:32,12:32 执行一次,启动的时候执行一次; Java代码 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" > <beans default -lazy-init= "false" > <bean id= "weekTimer" class = "com.chanceit.weather.WeatherHarvestListener" ></bean> <bean id= "weekJobDetailFactoryBean" class = "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" > <property name= "targetObject" ref= "weekTimer" /> <property name= "targetMethod" value= "main" /> <property name= "concurrent" value= "false" /> </bean> <bean id=