适配Oracle数据库

pull/42/head
fyw_wu 3 years ago
parent 76ab3f2cad
commit 7eebf5520f

@ -0,0 +1,196 @@
-- oracle 11g 测试通过
/*
-- 清理脚本
drop table xxl_job_info;
drop table xxl_job_log;
drop table xxl_job_log_report;
drop table xxl_job_logglue;
drop table xxl_job_registry;
drop table xxl_job_group;
drop table xxl_job_user;
drop table xxl_job_lock;
drop sequence SEQ_XXL_JOB_COMMON_ID;
drop sequence SEQ_XXL_JOB_LOG_ID;
*/
create sequence SEQ_XXL_JOB_COMMON_ID
minvalue 10000001
maxvalue 2147483647
increment by 1
cache 20
cycle;
create sequence SEQ_XXL_JOB_LOG_ID
minvalue 10000001
maxvalue 99999999999999
increment by 1
cache 20
cycle;
create table xxl_job_info (
id number(11) not null, -- AUTO_INCREMENT
job_group number(11) not null,
job_desc varchar2(255) not null,
add_time date default null,
update_time date default null,
author varchar2(64) default null,
alarm_email varchar2(255) default null,
schedule_type varchar2(50) default 'NONE' not null,
schedule_conf varchar2(128) default null,
misfire_strategy varchar2(50) default 'DO_NOTHING' not null,
executor_route_strategy varchar2(50) default null,
executor_handler varchar2(255) default null,
executor_param varchar2(512) default null,
executor_block_strategy varchar2(50) default null,
executor_timeout number(11) default '0' not null,
executor_fail_retry_count number(11) default '0' not null,
glue_type varchar2(50) not null,
glue_source clob,
glue_remark varchar2(128) default null,
glue_updatetime date default null,
child_jobid varchar2(255) default null,
trigger_status number(4) default '0' not null,
trigger_last_time number(13) default '0' not null,
trigger_next_time number(13) default '0' not null,
primary key (id)
);
comment on column xxl_job_info.job_group is '执行器主键ID';
comment on column xxl_job_info.author is '作者';
comment on column xxl_job_info.alarm_email is '报警邮件';
comment on column xxl_job_info.schedule_type is '调度类型';
comment on column xxl_job_info.schedule_conf is '调度配置,值含义取决于调度类型';
comment on column xxl_job_info.misfire_strategy is '调度过期策略';
comment on column xxl_job_info.executor_route_strategy is '执行器路由策略';
comment on column xxl_job_info.executor_handler is '执行器任务handler';
comment on column xxl_job_info.executor_param is '执行器任务参数';
comment on column xxl_job_info.executor_block_strategy is '阻塞处理策略';
comment on column xxl_job_info.executor_timeout is '任务执行超时时间,单位秒';
comment on column xxl_job_info.executor_fail_retry_count is '失败重试次数';
comment on column xxl_job_info.glue_type is 'GLUE类型';
comment on column xxl_job_info.glue_source is 'GLUE源代码';
comment on column xxl_job_info.glue_remark is 'GLUE备注';
comment on column xxl_job_info.glue_updatetime is 'GLUE更新时间';
comment on column xxl_job_info.child_jobid is '子任务ID多个逗号分隔';
comment on column xxl_job_info.trigger_status is '调度状态0-停止1-运行';
comment on column xxl_job_info.trigger_last_time is '上次调度时间';
comment on column xxl_job_info.trigger_next_time is '下次调度时间';
create table xxl_job_log (
id number(20) not null, -- AUTO_INCREMENT
job_group number(11) not null ,
job_id number(11) not null ,
executor_address varchar2(255) default null ,
executor_handler varchar2(255) default null ,
executor_param varchar2(512) default null ,
executor_sharding_param varchar2(20) default null ,
executor_fail_retry_count number(11) default '0' not null,
trigger_time date default null ,
trigger_code number(11) not null,
trigger_msg clob ,
handle_time date default null ,
handle_code number(11) not null,
handle_msg clob ,
alarm_status number(4) default '0' not null,
primary key (id)
);
create index i_trigger_time on xxl_job_log (trigger_time);
create index i_handle_code on xxl_job_log (handle_code);
comment on column xxl_job_log.job_group is '执行器主键ID';
comment on column xxl_job_log.job_id is '任务主键ID';
comment on column xxl_job_log.executor_address is '执行器地址,本次执行的地址';
comment on column xxl_job_log.executor_handler is '执行器任务handler';
comment on column xxl_job_log.executor_param is '执行器任务参数';
comment on column xxl_job_log.executor_sharding_param is '执行器任务分片参数,格式如 1/2';
comment on column xxl_job_log.executor_fail_retry_count is '失败重试次数';
comment on column xxl_job_log.trigger_time is '调度-时间';
comment on column xxl_job_log.trigger_code is '调度-结果';
comment on column xxl_job_log.trigger_msg is '调度-日志';
comment on column xxl_job_log.handle_time is '执行-时间';
comment on column xxl_job_log.handle_code is '执行-状态';
comment on column xxl_job_log.handle_msg is '执行-日志';
comment on column xxl_job_log.alarm_status is '告警状态0-默认、1-无需告警、2-告警成功、3-告警失败';
create table xxl_job_log_report (
id number(11) not null, -- AUTO_INCREMENT
trigger_day date default null,
running_count number(11) default '0' not null,
suc_count number(11) default '0' not null,
fail_count number(11) default '0' not null,
update_time date default null,
primary key (id)
);
create unique index i_trigger_day on xxl_job_log_report (trigger_day);
comment on column xxl_job_log_report.trigger_day is '调度-时间' ;
comment on column xxl_job_log_report.running_count is '运行中-日志数量' ;
comment on column xxl_job_log_report.suc_count is '执行成功-日志数量' ;
comment on column xxl_job_log_report.fail_count is '执行失败-日志数量' ;
create table xxl_job_logglue (
id number(11) not null, -- AUTO_INCREMENT
job_id number(11) not null,
glue_type varchar2(50) default null,
glue_source clob,
glue_remark varchar2(128) not null,
add_time date default null,
update_time date default null,
primary key (id)
);
comment on column xxl_job_logglue.job_id is '任务主键ID';
comment on column xxl_job_logglue.glue_type is 'GLUE类型';
comment on column xxl_job_logglue.glue_source is 'GLUE源代码';
comment on column xxl_job_logglue.glue_remark is 'GLUE备注';
create table xxl_job_registry (
id number(11) not null, -- AUTO_INCREMENT
registry_group varchar2(50) not null,
registry_key varchar2(255) not null,
registry_value varchar2(255) not null,
update_time date default null,
primary key (id)
);
create index i_g_k_v on xxl_job_registry(registry_group, registry_key, registry_value);
create table xxl_job_group (
id number(11) not null, -- AUTO_INCREMENT
app_name varchar2(64) not null,
title varchar2(12) not null,
address_type number(4) default '0' not null,
address_list clob,
update_time date default null,
primary key (id)
);
comment on column xxl_job_group.app_name is '执行器AppName';
comment on column xxl_job_group.title is '执行器名称';
comment on column xxl_job_group.address_type is '执行器地址类型0=自动注册、1=手动录入';
comment on column xxl_job_group.address_list is '执行器地址列表,多地址逗号分隔';
create table xxl_job_user (
id number(11) not null, -- AUTO_INCREMENT
username varchar2(50) not null,
password varchar2(50) not null,
role number(4) not null,
permission varchar2(255) default null,
primary key (id)
);
create unique index i_username on xxl_job_user(username);
comment on column xxl_job_user.username is '账号';
comment on column xxl_job_user.password is '密码';
comment on column xxl_job_user.role is '角色0-普通用户、1-管理员';
comment on column xxl_job_user.permission is '权限执行器ID列表多个逗号分割';
create table xxl_job_lock (
lock_name varchar2(50) not null,
primary key (lock_name)
);
comment on column xxl_job_lock.lock_name is '锁名称';
-- 初始化数据
insert into xxl_job_group(id, app_name, title, address_type, address_list, update_time) values (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss') );
insert into xxl_job_info(id, job_group, job_desc, add_time, update_time, author, alarm_email, schedule_type, schedule_conf, misfire_strategy, executor_route_strategy, executor_handler, executor_param, executor_block_strategy, executor_timeout, executor_fail_retry_count, glue_type, glue_source, glue_remark, glue_updatetime, child_jobid) values (1, 1, '测试任务1', to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss'), to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss'), 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss'), '');
insert into xxl_job_user(id, username, password, role, permission) values (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
insert into xxl_job_lock ( lock_name) values ( 'schedule_lock');
commit;

@ -42,6 +42,8 @@
<maven-source-plugin.version>3.2.1</maven-source-plugin.version> <maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.4.0</maven-javadoc-plugin.version> <maven-javadoc-plugin.version>3.4.0</maven-javadoc-plugin.version>
<maven-gpg-plugin.version>3.0.1</maven-gpg-plugin.version> <maven-gpg-plugin.version>3.0.1</maven-gpg-plugin.version>
<jdbc.oracle.version>19.3.0.0</jdbc.oracle.version>
</properties> </properties>
<build> <build>
@ -128,17 +130,6 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<distributionManagement>
<snapshotRepository>
<id>oss</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>oss</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</profile> </profile>
</profiles> </profiles>
</project> </project>

@ -60,11 +60,24 @@
<version>${mybatis-spring-boot-starter.version}</version> <version>${mybatis-spring-boot-starter.version}</version>
</dependency> </dependency>
<!-- mysql --> <!-- mysql -->
<!--
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version> <version>${mysql-connector-java.version}</version>
</dependency> </dependency>
-->
<!-- oracle -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>${jdbc.oracle.version}</version>
</dependency>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>orai18n</artifactId>
<version>${jdbc.oracle.version}</version>
</dependency>
<!-- xxl-job-core --> <!-- xxl-job-core -->
<dependency> <dependency>

@ -18,15 +18,22 @@ spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.########## spring.freemarker.settings.number_format=0.##########
### mybatis ### mybatis oracle
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model #mybatis.type-aliases-package=com.xxl.job.admin.core.model
mybatis.configuration.jdbc-type-for-null=null
### xxl-job, datasource ### xxl-job, datasource mysql
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.username=dms2
#spring.datasource.password=qw1112
### xxl-job, datasource oracle
spring.datasource.url=jdbc:oracle:thin:@//192.168.11.40:1521/crms
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=root_pwd spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### datasource-pool ### datasource-pool
spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.type=com.zaxxer.hikari.HikariDataSource
@ -37,7 +44,10 @@ spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000 spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000 spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.connection-test-query=SELECT 1 # MYSQL
#spring.datasource.hikari.connection-test-query=SELECT 1 FROM DUAL
# ORACLE
spring.datasource.hikari.connection-test-query=SELECT 1 FROM DUAL
spring.datasource.hikari.validation-timeout=1000 spring.datasource.hikari.validation-timeout=1000
### xxl-job, email ### xxl-job, email

@ -8,7 +8,7 @@
<result column="app_name" property="appname" /> <result column="app_name" property="appname" />
<result column="title" property="title" /> <result column="title" property="title" />
<result column="address_type" property="addressType" /> <result column="address_type" property="addressType" />
<result column="address_list" property="addressList" /> <result column="address_list" property="addressList" jdbcType="CLOB" javaType="java.lang.String" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
</resultMap> </resultMap>
@ -23,29 +23,32 @@
<select id="findAll" resultMap="XxlJobGroup"> <select id="findAll" resultMap="XxlJobGroup">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_group AS t FROM xxl_job_group t
ORDER BY t.app_name, t.title, t.id ASC ORDER BY t.app_name, t.title, t.id ASC
</select> </select>
<select id="findByAddressType" parameterType="java.lang.Integer" resultMap="XxlJobGroup"> <select id="findByAddressType" parameterType="java.lang.Integer" resultMap="XxlJobGroup">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_group AS t FROM xxl_job_group t
WHERE t.address_type = #{addressType} WHERE t.address_type = #{addressType}
ORDER BY t.app_name, t.title, t.id ASC ORDER BY t.app_name, t.title, t.id ASC
</select> </select>
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" useGeneratedKeys="true" keyProperty="id" > <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobGroup">
INSERT INTO xxl_job_group ( `app_name`, `title`, `address_type`, `address_list`, `update_time`) <selectKey resultType="int" keyProperty="id" order="BEFORE">
values ( #{appname}, #{title}, #{addressType}, #{addressList}, #{updateTime} ); select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_group (id, app_name, title, address_type, address_list, update_time)
values (#{id}, #{appname}, #{title}, #{addressType}, #{addressList, jdbcType=CLOB, javaType=java.lang.String}, #{updateTime} )
</insert> </insert>
<update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" > <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobGroup" >
UPDATE xxl_job_group UPDATE xxl_job_group
SET `app_name` = #{appname}, SET app_name = #{appname},
`title` = #{title}, title = #{title},
`address_type` = #{addressType}, address_type = #{addressType},
`address_list` = #{addressList}, address_list = #{addressList, jdbcType=CLOB, javaType=java.lang.String},
`update_time` = #{updateTime} update_time = #{updateTime}
WHERE id = #{id} WHERE id = #{id}
</update> </update>
@ -56,13 +59,17 @@
<select id="load" parameterType="java.lang.Integer" resultMap="XxlJobGroup"> <select id="load" parameterType="java.lang.Integer" resultMap="XxlJobGroup">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_group AS t FROM xxl_job_group t
WHERE t.id = #{id} WHERE t.id = #{id}
</select> </select>
<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobGroup"> <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobGroup">
select * from (
select * from (
select A.*, rownum rn from (
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_group AS t FROM xxl_job_group t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="appname != null and appname != ''"> <if test="appname != null and appname != ''">
AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%') AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%')
@ -72,12 +79,15 @@
</if> </if>
</trim> </trim>
ORDER BY t.app_name, t.title, t.id ASC ORDER BY t.app_name, t.title, t.id ASC
LIMIT #{offset}, #{pagesize}
) A
) where rn <![CDATA[ > ]]> #{offset}
) where rn <![CDATA[ <= ]]> #{offset} + #{pagesize}
</select> </select>
<select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> <select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
SELECT count(1) SELECT count(1)
FROM xxl_job_group AS t FROM xxl_job_group t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="appname != null and appname != ''"> <if test="appname != null and appname != ''">
AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%') AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%')

@ -27,7 +27,7 @@
<result column="executor_fail_retry_count" property="executorFailRetryCount" /> <result column="executor_fail_retry_count" property="executorFailRetryCount" />
<result column="glue_type" property="glueType" /> <result column="glue_type" property="glueType" />
<result column="glue_source" property="glueSource" /> <result column="glue_source" property="glueSource" jdbcType="CLOB" javaType="java.lang.String" />
<result column="glue_remark" property="glueRemark" /> <result column="glue_remark" property="glueRemark" />
<result column="glue_updatetime" property="glueUpdatetime" /> <result column="glue_updatetime" property="glueUpdatetime" />
@ -66,8 +66,12 @@
</sql> </sql>
<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
select * from (
select * from (
select A.*, rownum rn from (
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t FROM xxl_job_info t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobGroup gt 0"> <if test="jobGroup gt 0">
AND t.job_group = #{jobGroup} AND t.job_group = #{jobGroup}
@ -86,12 +90,15 @@
</if> </if>
</trim> </trim>
ORDER BY id DESC ORDER BY id DESC
LIMIT #{offset}, #{pagesize}
) A
) where rn <![CDATA[ > ]]> #{offset}
) where rn <![CDATA[ <= ]]> #{offset} + #{pagesize}
</select> </select>
<select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> <select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
SELECT count(1) SELECT count(1)
FROM xxl_job_info AS t FROM xxl_job_info t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobGroup gt 0"> <if test="jobGroup gt 0">
AND t.job_group = #{jobGroup} AND t.job_group = #{jobGroup}
@ -111,8 +118,12 @@
</trim> </trim>
</select> </select>
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" useGeneratedKeys="true" keyProperty="id" > <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobInfo">
<selectKey resultType="int" keyProperty="id" order="BEFORE">
select SEQ_XXL_JOB_COMMON_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_info ( INSERT INTO xxl_job_info (
id,
job_group, job_group,
job_desc, job_desc,
add_time, add_time,
@ -137,6 +148,7 @@
trigger_last_time, trigger_last_time,
trigger_next_time trigger_next_time
) VALUES ( ) VALUES (
#{id},
#{jobGroup}, #{jobGroup},
#{jobDesc}, #{jobDesc},
#{addTime}, #{addTime},
@ -153,23 +165,23 @@
#{executorTimeout}, #{executorTimeout},
#{executorFailRetryCount}, #{executorFailRetryCount},
#{glueType}, #{glueType},
#{glueSource}, #{glueSource, jdbcType=CLOB, javaType=java.lang.String},
#{glueRemark}, #{glueRemark},
#{glueUpdatetime}, #{glueUpdatetime},
#{childJobId}, #{childJobId},
#{triggerStatus}, #{triggerStatus},
#{triggerLastTime}, #{triggerLastTime},
#{triggerNextTime} #{triggerNextTime}
); )
<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
/*SELECT @@IDENTITY AS id*/ /*SELECT @@IDENTITY id*/
</selectKey>--> </selectKey>-->
</insert> </insert>
<select id="loadById" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> <select id="loadById" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t FROM xxl_job_info t
WHERE t.id = #{id} WHERE t.id = #{id}
</select> </select>
@ -191,7 +203,7 @@
executor_timeout = ${executorTimeout}, executor_timeout = ${executorTimeout},
executor_fail_retry_count = ${executorFailRetryCount}, executor_fail_retry_count = ${executorFailRetryCount},
glue_type = #{glueType}, glue_type = #{glueType},
glue_source = #{glueSource}, glue_source = #{glueSource, jdbcType=CLOB, javaType=java.lang.String},
glue_remark = #{glueRemark}, glue_remark = #{glueRemark},
glue_updatetime = #{glueUpdatetime}, glue_updatetime = #{glueUpdatetime},
child_jobid = #{childJobId}, child_jobid = #{childJobId},
@ -209,7 +221,7 @@
<select id="getJobsByGroup" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> <select id="getJobsByGroup" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t FROM xxl_job_info t
WHERE t.job_group = #{jobGroup} WHERE t.job_group = #{jobGroup}
</select> </select>
@ -220,12 +232,17 @@
<select id="scheduleJobQuery" parameterType="java.util.HashMap" resultMap="XxlJobInfo"> <select id="scheduleJobQuery" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
select * from (
select A.*, rownum rn from (
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t FROM xxl_job_info t
WHERE t.trigger_status = 1 WHERE t.trigger_status = 1
and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime} and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime}
ORDER BY id ASC ORDER BY id ASC
LIMIT #{pagesize}
) A
) where rn <![CDATA[ <= ]]> #{pagesize}
</select> </select>
<update id="scheduleUpdate" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" > <update id="scheduleUpdate" parameterType="com.xxl.job.admin.core.model.XxlJobInfo" >

@ -7,7 +7,7 @@
<result column="id" property="id" /> <result column="id" property="id" />
<result column="job_id" property="jobId" /> <result column="job_id" property="jobId" />
<result column="glue_type" property="glueType" /> <result column="glue_type" property="glueType" />
<result column="glue_source" property="glueSource" /> <result column="glue_source" property="glueSource" jdbcType="CLOB" javaType="java.lang.String" />
<result column="glue_remark" property="glueRemark" /> <result column="glue_remark" property="glueRemark" />
<result column="add_time" property="addTime" /> <result column="add_time" property="addTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
@ -23,22 +23,27 @@
t.update_time t.update_time
</sql> </sql>
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogGlue" useGeneratedKeys="true" keyProperty="id" > <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogGlue">
<selectKey resultType="int" keyProperty="id" order="BEFORE">
select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_logglue ( INSERT INTO xxl_job_logglue (
`job_id`, id,
`glue_type`, job_id,
`glue_source`, glue_type,
`glue_remark`, glue_source,
`add_time`, glue_remark,
`update_time` add_time,
update_time
) VALUES ( ) VALUES (
#{id},
#{jobId}, #{jobId},
#{glueType}, #{glueType},
#{glueSource}, #{glueSource, jdbcType=CLOB, javaType=java.lang.String},
#{glueRemark}, #{glueRemark},
#{addTime}, #{addTime},
#{updateTime} #{updateTime}
); )
<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
</selectKey>--> </selectKey>-->
@ -46,7 +51,7 @@
<select id="findByJobId" parameterType="java.lang.Integer" resultMap="XxlJobLogGlue"> <select id="findByJobId" parameterType="java.lang.Integer" resultMap="XxlJobLogGlue">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_logglue AS t FROM xxl_job_logglue t
WHERE t.job_id = #{jobId} WHERE t.job_id = #{jobId}
ORDER BY id DESC ORDER BY id DESC
</select> </select>
@ -56,16 +61,16 @@
WHERE id NOT in( WHERE id NOT in(
SELECT id FROM( SELECT id FROM(
SELECT id FROM xxl_job_logglue SELECT id FROM xxl_job_logglue
WHERE `job_id` = #{jobId} WHERE job_id = #{jobId}
ORDER BY update_time desc ORDER BY update_time desc
LIMIT 0, #{limit} LIMIT 0, #{limit}
) t1 ) t1
) AND `job_id` = #{jobId} ) AND job_id = #{jobId}
</delete> </delete>
<delete id="deleteByJobId" parameterType="java.lang.Integer" > <delete id="deleteByJobId" parameterType="java.lang.Integer" >
DELETE FROM xxl_job_logglue DELETE FROM xxl_job_logglue
WHERE `job_id` = #{jobId} WHERE job_id = #{jobId}
</delete> </delete>
</mapper> </mapper>

@ -17,11 +17,11 @@
<result column="trigger_time" property="triggerTime" /> <result column="trigger_time" property="triggerTime" />
<result column="trigger_code" property="triggerCode" /> <result column="trigger_code" property="triggerCode" />
<result column="trigger_msg" property="triggerMsg" /> <result column="trigger_msg" property="triggerMsg" jdbcType="CLOB" javaType="java.lang.String" />
<result column="handle_time" property="handleTime" /> <result column="handle_time" property="handleTime" />
<result column="handle_code" property="handleCode" /> <result column="handle_code" property="handleCode" />
<result column="handle_msg" property="handleMsg" /> <result column="handle_msg" property="handleMsg" jdbcType="CLOB" javaType="java.lang.String" />
<result column="alarm_status" property="alarmStatus" /> <result column="alarm_status" property="alarmStatus" />
</resultMap> </resultMap>
@ -45,8 +45,12 @@
</sql> </sql>
<select id="pageList" resultMap="XxlJobLog"> <select id="pageList" resultMap="XxlJobLog">
select * from (
select * from (
select A.*, rownum rn from (
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_log AS t FROM xxl_job_log t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobId==0 and jobGroup gt 0"> <if test="jobId==0 and jobGroup gt 0">
AND t.job_group = #{jobGroup} AND t.job_group = #{jobGroup}
@ -75,12 +79,15 @@
</if> </if>
</trim> </trim>
ORDER BY t.trigger_time DESC ORDER BY t.trigger_time DESC
LIMIT #{offset}, #{pagesize}
) A
) where rn <![CDATA[ > ]]> #{offset}
) where rn <![CDATA[ <= ]]> #{offset} + #{pagesize}
</select> </select>
<select id="pageListCount" resultType="int"> <select id="pageListCount" resultType="int">
SELECT count(1) SELECT count(1)
FROM xxl_job_log AS t FROM xxl_job_log t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobId==0 and jobGroup gt 0"> <if test="jobId==0 and jobGroup gt 0">
AND t.job_group = #{jobGroup} AND t.job_group = #{jobGroup}
@ -112,25 +119,30 @@
<select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog"> <select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_log AS t FROM xxl_job_log t
WHERE t.id = #{id} WHERE t.id = #{id}
</select> </select>
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" > <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLog">
<selectKey resultType="int" keyProperty="id" order="BEFORE">
select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_log ( INSERT INTO xxl_job_log (
`job_group`, id,
`job_id`, job_group,
`trigger_time`, job_id,
`trigger_code`, trigger_time,
`handle_code` trigger_code,
handle_code
) VALUES ( ) VALUES (
#{id},
#{jobGroup}, #{jobGroup},
#{jobId}, #{jobId},
#{triggerTime}, #{triggerTime},
#{triggerCode}, #{triggerCode},
#{handleCode} #{handleCode}
); )
<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
</selectKey>--> </selectKey>-->
@ -139,24 +151,24 @@
<update id="updateTriggerInfo" > <update id="updateTriggerInfo" >
UPDATE xxl_job_log UPDATE xxl_job_log
SET SET
`trigger_time`= #{triggerTime}, trigger_time= #{triggerTime},
`trigger_code`= #{triggerCode}, trigger_code= #{triggerCode},
`trigger_msg`= #{triggerMsg}, trigger_msg= #{triggerMsg, jdbcType=CLOB, javaType=java.lang.String},
`executor_address`= #{executorAddress}, executor_address= #{executorAddress},
`executor_handler`=#{executorHandler}, executor_handler=#{executorHandler},
`executor_param`= #{executorParam}, executor_param= #{executorParam},
`executor_sharding_param`= #{executorShardingParam}, executor_sharding_param= #{executorShardingParam},
`executor_fail_retry_count`= #{executorFailRetryCount} executor_fail_retry_count= #{executorFailRetryCount}
WHERE `id`= #{id} WHERE id= #{id}
</update> </update>
<update id="updateHandleInfo"> <update id="updateHandleInfo">
UPDATE xxl_job_log UPDATE xxl_job_log
SET SET
`handle_time`= #{handleTime}, handle_time= #{handleTime},
`handle_code`= #{handleCode}, handle_code= #{handleCode},
`handle_msg`= #{handleMsg} handle_msg= #{handleMsg, jdbcType=CLOB, javaType=java.lang.String}
WHERE `id`= #{id} WHERE id= #{id}
</update> </update>
<delete id="delete" > <delete id="delete" >
@ -168,8 +180,8 @@
SELECT SELECT
DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay, DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay,
COUNT(handle_code) triggerDayCount, COUNT(handle_code) triggerDayCount,
SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning, SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) triggerDayCountRunning,
SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc SUM(CASE WHEN handle_code = 200 then 1 else 0 end) triggerDayCountSuc
FROM xxl_job_log FROM xxl_job_log
WHERE trigger_time BETWEEN #{from} and #{to} WHERE trigger_time BETWEEN #{from} and #{to}
GROUP BY triggerDay GROUP BY triggerDay
@ -179,13 +191,16 @@
<select id="findLogReport" resultType="java.util.Map" > <select id="findLogReport" resultType="java.util.Map" >
SELECT SELECT
COUNT(handle_code) triggerDayCount, COUNT(handle_code) triggerDayCount,
SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning, SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) triggerDayCountRunning,
SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc SUM(CASE WHEN handle_code = 200 then 1 else 0 end) triggerDayCountSuc
FROM xxl_job_log FROM xxl_job_log
WHERE trigger_time BETWEEN #{from} and #{to} WHERE trigger_time BETWEEN #{from} and #{to}
</select> </select>
<select id="findClearLogIds" resultType="long" > <select id="findClearLogIds" resultType="long" >
select * from (
select A.*, rownum rn from (
SELECT id FROM xxl_job_log SELECT id FROM xxl_job_log
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobGroup gt 0"> <if test="jobGroup gt 0">
@ -200,7 +215,7 @@
<if test="clearBeforeNum gt 0"> <if test="clearBeforeNum gt 0">
AND id NOT in( AND id NOT in(
SELECT id FROM( SELECT id FROM(
SELECT id FROM xxl_job_log AS t SELECT id FROM xxl_job_log t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobGroup gt 0"> <if test="jobGroup gt 0">
AND t.job_group = #{jobGroup} AND t.job_group = #{jobGroup}
@ -216,7 +231,9 @@
</if> </if>
</trim> </trim>
order by id asc order by id asc
LIMIT #{pagesize}
) A
) where rn <![CDATA[ <= ]]> #{pagesize}
</select> </select>
<delete id="clearLog" > <delete id="clearLog" >
@ -228,22 +245,27 @@
</delete> </delete>
<select id="findFailJobLogIds" resultType="long" > <select id="findFailJobLogIds" resultType="long" >
SELECT id FROM `xxl_job_log` select * from (
WHERE !( select A.*, rownum rn from (
SELECT id FROM xxl_job_log
WHERE not (
(trigger_code in (0, 200) and handle_code = 0) (trigger_code in (0, 200) and handle_code = 0)
OR OR
(handle_code = 200) (handle_code = 200)
) )
AND `alarm_status` = 0 AND alarm_status = 0
ORDER BY id ASC ORDER BY id ASC
LIMIT #{pagesize}
) A
) where rn <![CDATA[ <= ]]> #{pagesize}
</select> </select>
<update id="updateAlarmStatus" > <update id="updateAlarmStatus" >
UPDATE xxl_job_log UPDATE xxl_job_log
SET SET
`alarm_status` = #{newAlarmStatus} alarm_status = #{newAlarmStatus}
WHERE `id`= #{logId} AND `alarm_status` = #{oldAlarmStatus} WHERE id= #{logId} AND alarm_status = #{oldAlarmStatus}
</update> </update>
<select id="findLostJobIds" resultType="long" > <select id="findLostJobIds" resultType="long" >
@ -256,17 +278,17 @@
t.trigger_code = 200 t.trigger_code = 200
AND t.handle_code = 0 AND t.handle_code = 0
AND t.trigger_time <![CDATA[ <= ]]> #{losedTime} AND t.trigger_time <![CDATA[ <= ]]> #{losedTime}
AND t2.id IS NULL; AND t2.id IS NULL
</select> </select>
<!-- <!--
SELECT t.id SELECT t.id
FROM xxl_job_log AS t FROM xxl_job_log t
WHERE t.trigger_code = 200 WHERE t.trigger_code = 200
and t.handle_code = 0 and t.handle_code = 0
and t.trigger_time <![CDATA[ <= ]]> #{losedTime} and t.trigger_time <![CDATA[ <= ]]> #{losedTime}
and t.executor_address not in ( and t.executor_address not in (
SELECT t2.registry_value SELECT t2.registry_value
FROM xxl_job_registry AS t2 FROM xxl_job_registry t2
) )
--> -->

@ -19,18 +19,23 @@
t.fail_count t.fail_count
</sql> </sql>
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogReport" useGeneratedKeys="true" keyProperty="id" > <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLogReport">
<selectKey resultType="int" keyProperty="id" order="BEFORE">
select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_log_report ( INSERT INTO xxl_job_log_report (
`trigger_day`, id,
`running_count`, trigger_day,
`suc_count`, running_count,
`fail_count` suc_count,
fail_count
) VALUES ( ) VALUES (
#{id},
#{triggerDay}, #{triggerDay},
#{runningCount}, #{runningCount},
#{sucCount}, #{sucCount},
#{failCount} #{failCount}
); )
<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> <!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
</selectKey>--> </selectKey>-->
@ -38,15 +43,15 @@
<update id="update" > <update id="update" >
UPDATE xxl_job_log_report UPDATE xxl_job_log_report
SET `running_count` = #{runningCount}, SET running_count = #{runningCount},
`suc_count` = #{sucCount}, suc_count = #{sucCount},
`fail_count` = #{failCount} fail_count = #{failCount}
WHERE `trigger_day` = #{triggerDay} WHERE trigger_day = #{triggerDay}
</update> </update>
<select id="queryLogReport" resultMap="XxlJobLogReport"> <select id="queryLogReport" resultMap="XxlJobLogReport">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_log_report AS t FROM xxl_job_log_report t
WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo} WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo}
ORDER BY t.trigger_day ASC ORDER BY t.trigger_day ASC
</select> </select>
@ -56,7 +61,7 @@
SUM(running_count) running_count, SUM(running_count) running_count,
SUM(suc_count) suc_count, SUM(suc_count) suc_count,
SUM(fail_count) fail_count SUM(fail_count) fail_count
FROM xxl_job_log_report AS t FROM xxl_job_log_report t
</select> </select>
</mapper> </mapper>

@ -21,8 +21,8 @@
<select id="findDead" parameterType="java.util.HashMap" resultType="java.lang.Integer" > <select id="findDead" parameterType="java.util.HashMap" resultType="java.lang.Integer" >
SELECT t.id SELECT t.id
FROM xxl_job_registry AS t FROM xxl_job_registry t
WHERE t.update_time <![CDATA[ < ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) WHERE t.update_time <![CDATA[ < ]]> #{nowTime} - INTERVAL '${timeout}' SECOND
</select> </select>
<delete id="removeDead" parameterType="java.lang.Integer" > <delete id="removeDead" parameterType="java.lang.Integer" >
@ -35,21 +35,24 @@
<select id="findAll" parameterType="java.util.HashMap" resultMap="XxlJobRegistry"> <select id="findAll" parameterType="java.util.HashMap" resultMap="XxlJobRegistry">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_registry AS t FROM xxl_job_registry t
WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) WHERE t.update_time <![CDATA[ > ]]> #{nowTime} - INTERVAL '${timeout}' SECOND
</select> </select>
<update id="registryUpdate"> <update id="registryUpdate">
UPDATE xxl_job_registry UPDATE xxl_job_registry
SET `update_time` = #{updateTime} SET update_time = #{updateTime}
WHERE `registry_group` = #{registryGroup} WHERE registry_group = #{registryGroup}
AND `registry_key` = #{registryKey} AND registry_key = #{registryKey}
AND `registry_value` = #{registryValue} AND registry_value = #{registryValue}
</update> </update>
<insert id="registrySave" > <insert id="registrySave" useGeneratedKeys="true" keyProperty="id">
INSERT INTO xxl_job_registry( `registry_group` , `registry_key` , `registry_value`, `update_time`) <selectKey resultType="int" keyProperty="id" order="BEFORE">
VALUES( #{registryGroup} , #{registryKey} , #{registryValue}, #{updateTime}) select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_registry(id, registry_group , registry_key , registry_value, update_time)
VALUES(#{id}, #{registryGroup} , #{registryKey} , #{registryValue}, #{updateTime})
</insert> </insert>
<delete id="registryDelete" > <delete id="registryDelete" >

@ -20,8 +20,12 @@
</sql> </sql>
<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobUser"> <select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobUser">
select * from (
select * from (
select A.*, rownum rn from (
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_user AS t FROM xxl_job_user t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="username != null and username != ''"> <if test="username != null and username != ''">
AND t.username like CONCAT(CONCAT('%', #{username}), '%') AND t.username like CONCAT(CONCAT('%', #{username}), '%')
@ -31,12 +35,15 @@
</if> </if>
</trim> </trim>
ORDER BY username ASC ORDER BY username ASC
LIMIT #{offset}, #{pagesize}
) A
) where rn <![CDATA[ > ]]> #{offset}
) where rn <![CDATA[ <= ]]> #{offset} + #{pagesize}
</select> </select>
<select id="pageListCount" parameterType="java.util.HashMap" resultType="int"> <select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
SELECT count(1) SELECT count(1)
FROM xxl_job_user AS t FROM xxl_job_user t
<trim prefix="WHERE" prefixOverrides="AND | OR" > <trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="username != null and username != ''"> <if test="username != null and username != ''">
AND t.username like CONCAT(CONCAT('%', #{username}), '%') AND t.username like CONCAT(CONCAT('%', #{username}), '%')
@ -49,22 +56,27 @@
<select id="loadByUserName" parameterType="java.util.HashMap" resultMap="XxlJobUser"> <select id="loadByUserName" parameterType="java.util.HashMap" resultMap="XxlJobUser">
SELECT <include refid="Base_Column_List" /> SELECT <include refid="Base_Column_List" />
FROM xxl_job_user AS t FROM xxl_job_user t
WHERE t.username = #{username} WHERE t.username = #{username}
</select> </select>
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobUser" useGeneratedKeys="true" keyProperty="id" > <insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobUser">
<selectKey resultType="int" keyProperty="id" order="BEFORE">
select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
</selectKey>
INSERT INTO xxl_job_user ( INSERT INTO xxl_job_user (
id,
username, username,
password, password,
role, role,
permission permission
) VALUES ( ) VALUES (
#{id},
#{username}, #{username},
#{password}, #{password},
#{role}, #{role},
#{permission} #{permission}
); )
</insert> </insert>
<update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobUser" > <update id="update" parameterType="com.xxl.job.admin.core.model.XxlJobUser" >

Loading…
Cancel
Save