{"id":494,"date":"2024-08-11T14:39:45","date_gmt":"2024-08-11T06:39:45","guid":{"rendered":"https:\/\/www.xieshuoshuo.top\/?p=494"},"modified":"2024-08-11T14:39:46","modified_gmt":"2024-08-11T06:39:46","slug":"xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93","status":"publish","type":"post","link":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/","title":{"rendered":"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93"},"content":{"rendered":"\n<p>\u539f\u6587\u94fe\u63a5\uff1a<a href=\"https:\/\/blog.csdn.net\/qq_24731595\/article\/details\/134309140\" target=\"_blank\"  rel=\"nofollow\" >XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93<\/a><br>\u9002\u7528\u7248\u672c\uff1a2.4.1\uff1b2.4.0<\/p>\n\n\n\n<p>XXL-JOB\u662f\u6211\u4eec\u6bd4\u8f83\u5e38\u7528\u7684\u5b9a\u65f6\u4efb\u52a1\u6846\u67b6\uff0c\u4f46\u662f\u5b98\u65b9\u53ea\u9002\u914d\u4e86MySQL\u6570\u636e\u5e93\uff0c\u751f\u4ea7\u8fc7\u7a0b\u4e2d\u6211\u4eec\u53ef\u80fd\u7528\u5230Oracle\u6570\u636e\uff0c\u4e0b\u9762\u6211\u4eec\u5c31\u5bf92.4.0\u7248\u672c\u8fdb\u884c\u6539\u9020\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4fee\u6539XXL-JOB\u6570\u636e\u8868\u521d\u59cb\u5316SQL<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>tables_xxl_job_oracle.sql<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>drop table XXL_JOB_GROUP;\ncreate table XXL_JOB_GROUP\n(\n    ID            NUMBER not null,\n    APP_NAME      VARCHAR2(150) not null,\n    TITLE         VARCHAR2(50) not null,\n    ADDRESS_TYPE  NUMBER not null,\n    ADDRESS_LIST  CLOB,\n    UPDATE_TIME   DATE\n);\ncomment on table XXL_JOB_GROUP\n is '\u6267\u884c\u5668\u4fe1\u606f\u8868';\ncomment on column XXL_JOB_GROUP.ID\n is 'id';\ncomment on column XXL_JOB_GROUP.APP_NAME\n is '\u6267\u884c\u5668AppName';\ncomment on column XXL_JOB_GROUP.TITLE\n is '\u6267\u884c\u5668\u540d\u79f0';\ncomment on column XXL_JOB_GROUP.ADDRESS_TYPE\n is '\u6267\u884c\u5668\u5730\u5740\u7c7b\u578b\uff1a0=\u81ea\u52a8\u6ce8\u518c\u30011=\u624b\u52a8\u5f55\u5165';\ncomment on column XXL_JOB_GROUP.ADDRESS_LIST\n is '\u6267\u884c\u5668\u5730\u5740\u5217\u8868\uff0c\u591a\u5730\u5740\u9017\u53f7\u5206\u9694';\ncomment on column XXL_JOB_GROUP.UPDATE_TIME\n is '';\ncreate index IDX_JOB_GROUP_APP_NAME on XXL_JOB_GROUP(APP_NAME) ;\nalter table XXL_JOB_GROUP add constraint PK_XXL_JOB_GROUP primary key (ID)  ;\n\ndrop table XXL_JOB_INFO;\ncreate table XXL_JOB_INFO\n(\n    ID                        NUMBER not null,\n    JOB_GROUP                 NUMBER not null,\n    JOB_DESC                  VARCHAR2(500) not null,\n    ADD_TIME                  DATE,\n    UPDATE_TIME               DATE,\n    AUTHOR                    VARCHAR2(500),\n    ALARM_EMAIL               VARCHAR2(500),\n    SCHEDULE_TYPE             VARCHAR2(50),\n    SCHEDULE_CONF             VARCHAR2(128),\n    MISFIRE_STRATEGY          VARCHAR2(50),\n    EXECUTOR_ROUTE_STRATEGY   VARCHAR2(150),\n    EXECUTOR_HANDLER          VARCHAR2(500),\n    EXECUTOR_PARAM            VARCHAR2(1000),\n    EXECUTOR_BLOCK_STRATEGY   VARCHAR2(150),\n    EXECUTOR_TIMEOUT          NUMBER not null,\n    EXECUTOR_FAIL_RETRY_COUNT NUMBER not null,\n    GLUE_TYPE                 VARCHAR2(150) not null,\n    GLUE_SOURCE               CLOB,\n    GLUE_REMARK               VARCHAR2(128),\n    GLUE_UPDATETIME           DATE,\n    CHILD_JOBID               VARCHAR2(500),\n    TRIGGER_STATUS            NUMBER not null,\n    TRIGGER_LAST_TIME         NUMBER not null,\n    TRIGGER_NEXT_TIME         NUMBER not null\n) ;\ncomment on table XXL_JOB_INFO\n is '\u8c03\u5ea6\u4fe1\u606f\u8868';\ncomment on column XXL_JOB_INFO.SCHEDULE_CONF\n is '\u8c03\u5ea6\u914d\u7f6e\uff0c\u503c\u542b\u4e49\u53d6\u51b3\u4e8e\u8c03\u5ea6\u7c7b\u578b';\ncomment on column XXL_JOB_INFO.EXECUTOR_HANDLER\n is '\u6267\u884c\u5668\u4efb\u52a1handler';\ncomment on column XXL_JOB_INFO.EXECUTOR_PARAM\n is '\u6267\u884c\u5668\u4efb\u52a1\u53c2\u6570';\ncomment on column XXL_JOB_INFO.EXECUTOR_BLOCK_STRATEGY\n is '\u963b\u585e\u5904\u7406\u7b56\u7565';\ncomment on column XXL_JOB_INFO.EXECUTOR_TIMEOUT\n is '\u4efb\u52a1\u6267\u884c\u8d85\u65f6\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2';\ncomment on column XXL_JOB_INFO.EXECUTOR_FAIL_RETRY_COUNT\n is '\u5931\u8d25\u91cd\u8bd5\u6b21\u6570';\ncomment on column XXL_JOB_INFO.GLUE_TYPE\n is 'GLUE\u7c7b\u578b';\ncomment on column XXL_JOB_INFO.GLUE_SOURCE\n is 'GLUE\u6e90\u4ee3\u7801';\ncomment on column XXL_JOB_INFO.GLUE_REMARK\n is 'GLUE\u5907\u6ce8';\ncomment on column XXL_JOB_INFO.GLUE_UPDATETIME\n is 'GLUE\u66f4\u65b0\u65f6\u95f4';\ncomment on column XXL_JOB_INFO.CHILD_JOBID\n is '\u5b50\u4efb\u52a1ID\uff0c\u591a\u4e2a\u9017\u53f7\u5206\u9694';\ncomment on column XXL_JOB_INFO.TRIGGER_STATUS\n is '\u8c03\u5ea6\u72b6\u6001\uff1a0-\u505c\u6b62\uff0c1-\u8fd0\u884c';\ncomment on column XXL_JOB_INFO.TRIGGER_LAST_TIME\n is '\u4e0a\u6b21\u8c03\u5ea6\u65f6\u95f4';\ncomment on column XXL_JOB_INFO.TRIGGER_NEXT_TIME\n is '\u4e0b\u6b21\u8c03\u5ea6\u65f6\u95f4';\ncomment on column XXL_JOB_INFO.MISFIRE_STRATEGY\n is '\u8c03\u5ea6\u8fc7\u671f\u7b56\u7565';\ncomment on column XXL_JOB_INFO.SCHEDULE_TYPE\n is '\u8c03\u5ea6\u7c7b\u578b';\ncomment on column XXL_JOB_INFO.EXECUTOR_ROUTE_STRATEGY\n is '\u6267\u884c\u5668\u8def\u7531\u7b56\u7565';\ncomment on column XXL_JOB_INFO.AUTHOR\n is '\u4f5c\u8005';\ncomment on column XXL_JOB_INFO.ALARM_EMAIL\n is '\u62a5\u8b66\u90ae\u4ef6';\ncomment on column XXL_JOB_INFO.ID\n is '\u4e3b\u952e';\ncomment on column XXL_JOB_INFO.JOB_GROUP\n is '\u6267\u884c\u5668\u4e3b\u952eID';\ncomment on column XXL_JOB_INFO.JOB_DESC\n is '\u4efb\u52a1\u63cf\u8ff0';\ncomment on column XXL_JOB_INFO.ADD_TIME\n is '\u6dfb\u52a0\u65f6\u95f4';\ncomment on column XXL_JOB_INFO.UPDATE_TIME\n is '\u66f4\u65b0\u65f6\u95f4';\ncreate index IDX_JOB_AUTHOR on XXL_JOB_INFO(AUTHOR) ;\ncreate index IDX_JOB_EXECUTOR_HANDLER on XXL_JOB_INFO(EXECUTOR_HANDLER) ;\ncreate index IDX_JOB_JOB_GROUP on XXL_JOB_INFO(JOB_GROUP) ;\ncreate index IDX_JOB_TRIGGER_STATUS on XXL_JOB_INFO(TRIGGER_STATUS) ;\nalter table XXL_JOB_INFO add constraint PK_XXL_JOB_INFO primary key (ID)  ;\n\ndrop table XXL_JOB_LOCK;\ncreate table XXL_JOB_LOCK(\n    LOCK_NAME VARCHAR2(150) not null\n) ;\ncomment on table XXL_JOB_LOCK\n is '\u9501\u4fe1\u606f';\ncomment on column XXL_JOB_LOCK.LOCK_NAME\n is '\u9501\u540d\u79f0';\nalter table XXL_JOB_LOCK add constraint PK_XXL_JOB_LOCK primary key (LOCK_NAME)  ;\n\ndrop table XXL_JOB_LOG;\ncreate table XXL_JOB_LOG\n(\n    ID                        NUMBER not null,\n    JOB_GROUP                 NUMBER not null,\n    JOB_ID                    NUMBER not null,\n    EXECUTOR_ADDRESS          VARCHAR2(500),\n    EXECUTOR_HANDLER          VARCHAR2(500),\n    EXECUTOR_PARAM            VARCHAR2(1000),\n    EXECUTOR_SHARDING_PARAM   VARCHAR2(50),\n    EXECUTOR_FAIL_RETRY_COUNT NUMBER not null,\n    TRIGGER_TIME              DATE,\n    TRIGGER_CODE              NUMBER not null,\n    TRIGGER_MSG               CLOB,\n    HANDLE_TIME               DATE,\n    HANDLE_CODE               NUMBER not null,\n    HANDLE_MSG                CLOB,\n    ALARM_STATUS              NUMBER not null\n) ;\ncomment on table XXL_JOB_LOG\n is '\u4efb\u52a1\u65e5\u5fd7\u4fe1\u606f';\ncomment on column XXL_JOB_LOG.JOB_ID\n is '\u4efb\u52a1\uff0c\u4e3b\u952eID';\ncomment on column XXL_JOB_LOG.EXECUTOR_ADDRESS\n is '\u6267\u884c\u5668\u5730\u5740\uff0c\u672c\u6b21\u6267\u884c\u7684\u5730\u5740';\ncomment on column XXL_JOB_LOG.EXECUTOR_HANDLER\n is '\u6267\u884c\u5668\u4efb\u52a1handler';\ncomment on column XXL_JOB_LOG.EXECUTOR_PARAM\n is '\u6267\u884c\u5668\u4efb\u52a1\u53c2\u6570';\ncomment on column XXL_JOB_LOG.EXECUTOR_SHARDING_PARAM\n is '\u6267\u884c\u5668\u4efb\u52a1\u5206\u7247\u53c2\u6570\uff0c\u683c\u5f0f\u5982 1\/2';\ncomment on column XXL_JOB_LOG.EXECUTOR_FAIL_RETRY_COUNT\n is '\u5931\u8d25\u91cd\u8bd5\u6b21\u6570';\ncomment on column XXL_JOB_LOG.TRIGGER_TIME\n is '\u8c03\u5ea6-\u65f6\u95f4';\ncomment on column XXL_JOB_LOG.TRIGGER_CODE\n is '\u8c03\u5ea6-\u7ed3\u679c';\ncomment on column XXL_JOB_LOG.TRIGGER_MSG\n is '\u8c03\u5ea6-\u65e5\u5fd7';\ncomment on column XXL_JOB_LOG.HANDLE_TIME\n is '\u6267\u884c-\u65f6\u95f4';\ncomment on column XXL_JOB_LOG.HANDLE_CODE\n is '\u6267\u884c-\u72b6\u6001';\ncomment on column XXL_JOB_LOG.HANDLE_MSG\n is '\u6267\u884c-\u65e5\u5fd7';\ncomment on column XXL_JOB_LOG.ALARM_STATUS\n is '\u544a\u8b66\u72b6\u6001\uff1a0-\u9ed8\u8ba4\u30011-\u65e0\u9700\u544a\u8b66\u30012-\u544a\u8b66\u6210\u529f\u30013-\u544a\u8b66\u5931\u8d25';\ncomment on column XXL_JOB_LOG.JOB_GROUP\n is '\u6267\u884c\u5668\u4e3b\u952eID';\ncomment on column XXL_JOB_LOG.ID\n is '\u4e3b\u952eID';\ncreate index IDX_JOB_LOG_TRIGGER_CODE on XXL_JOB_LOG(TRIGGER_CODE) ;\ncreate index IDX_JOB_LOG_TRIGGER_TIME on XXL_JOB_LOG(TRIGGER_TIME) ;\nalter table XXL_JOB_LOG add constraint PK_XXL_JOB_LOG primary key (ID)  ;\ncreate index IDX_JOB_LOG_HANDLE_CODE on XXL_JOB_LOG(HANDLE_CODE) ;\ncreate index IDX_JOB_LOG_HANDLE_TIME on XXL_JOB_LOG(HANDLE_TIME) ;\ncreate index IDX_JOB_LOG_JOB_GROUP on XXL_JOB_LOG(JOB_GROUP) ;\ncreate index IDX_JOB_LOG_JOB_ID on XXL_JOB_LOG(JOB_ID) ;\nALTER TABLE XXL_JOB_LOG MODIFY EXECUTOR_FAIL_RETRY_COUNT DEFAULT 0;\nALTER TABLE XXL_JOB_LOG MODIFY ALARM_STATUS DEFAULT 0;\n\ndrop table XXL_JOB_LOGGLUE;\ncreate table XXL_JOB_LOGGLUE\n(\n    ID          NUMBER not null,\n    JOB_ID      NUMBER not null,\n    GLUE_TYPE   VARCHAR2(150),\n    GLUE_SOURCE CLOB,\n    GLUE_REMARK VARCHAR2(256) not null,\n    ADD_TIME    DATE,\n    UPDATE_TIME DATE\n) ;\ncomment on table XXL_JOB_LOGGLUE\n is '\u4efb\u52a1GLUE\u65e5\u5fd7';\ncomment on column XXL_JOB_LOGGLUE.GLUE_SOURCE\n is 'GLUE\u6e90\u4ee3\u7801';\ncomment on column XXL_JOB_LOGGLUE.GLUE_REMARK\n is 'GLUE\u5907\u6ce8';\ncomment on column XXL_JOB_LOGGLUE.ADD_TIME\n is '\u6dfb\u52a0\u65f6\u95f4';\ncomment on column XXL_JOB_LOGGLUE.UPDATE_TIME\n is '\u66f4\u65b0\u65f6\u95f4';\ncomment on column XXL_JOB_LOGGLUE.ID\n is '\u4e3b\u952eID';\ncomment on column XXL_JOB_LOGGLUE.JOB_ID\n is '\u4efb\u52a1\uff0c\u4e3b\u952eID';\ncomment on column XXL_JOB_LOGGLUE.GLUE_TYPE\n is 'GLUE\u7c7b\u578b';\ncreate index IDX_JOB_LOGGLUE_JOB_ID on XXL_JOB_LOGGLUE(JOB_ID) ;\nalter table XXL_JOB_LOGGLUE add constraint PK_XXL_JOB_LOGGLUE primary key (ID)  ;\n\ndrop table XXL_JOB_LOG_REPORT;\ncreate table XXL_JOB_LOG_REPORT\n(\n    ID            NUMBER(11) not null,\n    TRIGGER_DAY   DATE,\n    RUNNING_COUNT NUMBER(11) not null,\n    SUC_COUNT     NUMBER(11) not null,\n    FAIL_COUNT    NUMBER(11) not null,\n    UPDATE_TIME   DATE\n) ;\ncomment on table XXL_JOB_LOG_REPORT\n is '\u65e5\u5fd7\u62a5\u8868';\ncomment on column XXL_JOB_LOG_REPORT.ID\n is 'id';\ncomment on column XXL_JOB_LOG_REPORT.TRIGGER_DAY\n is '\u8c03\u5ea6-\u65f6\u95f4';\ncomment on column XXL_JOB_LOG_REPORT.RUNNING_COUNT\n is '\u8fd0\u884c\u4e2d-\u65e5\u5fd7\u6570\u91cf';\ncomment on column XXL_JOB_LOG_REPORT.SUC_COUNT\n is '\u6267\u884c\u6210\u529f-\u65e5\u5fd7\u6570\u91cf';\ncomment on column XXL_JOB_LOG_REPORT.FAIL_COUNT\n is '\u6267\u884c\u5931\u8d25-\u65e5\u5fd7\u6570\u91cf';\ncomment on column XXL_JOB_LOG_REPORT.UPDATE_TIME\n is '\u66f4\u65b0\u65f6\u95f4';\nalter table XXL_JOB_LOG_REPORT add constraint PK_XXL_JOB_LOG_REPORT primary key (ID)  ;\n\ndrop table XXL_JOB_REGISTRY;\ncreate table XXL_JOB_REGISTRY\n(\n    ID             NUMBER not null,\n    REGISTRY_GROUP VARCHAR2(500) not null,\n    REGISTRY_KEY   VARCHAR2(500) not null,\n    REGISTRY_VALUE VARCHAR2(500) not null,\n    UPDATE_TIME    DATE\n) ;\ncomment on table XXL_JOB_REGISTRY\n is '\u6267\u884c\u5668\u6ce8\u518c\u8868';\ncomment on column XXL_JOB_REGISTRY.ID\n is '\u4e3b\u952eID';\ncomment on column XXL_JOB_REGISTRY.REGISTRY_GROUP\n is '\u6ce8\u518c\u7ec4';\ncomment on column XXL_JOB_REGISTRY.REGISTRY_KEY\n is '\u6ce8\u518ckey';\ncomment on column XXL_JOB_REGISTRY.REGISTRY_VALUE\n is '\u6ce8\u518cvalue';\ncomment on column XXL_JOB_REGISTRY.UPDATE_TIME\n is '\u4fee\u6539\u65f6\u95f4';\ncreate index IDX_JOB_REGISTRY_GROUP on XXL_JOB_REGISTRY(REGISTRY_GROUP) ;\ncreate index IDX_JOB_REGISTRY_UPDATE_TIME on XXL_JOB_REGISTRY(UPDATE_TIME) ;\nalter table XXL_JOB_REGISTRY add constraint PK_XXL_JOB_REGISTRY primary key (ID)  ;\n\n\ndrop table XXL_JOB_USER;\ncreate table XXL_JOB_USER\n(\n    ID         NUMBER not null,\n    USERNAME   VARCHAR2(150) not null,\n    PASSWORD   VARCHAR2(150) not null,\n    ROLE       NUMBER not null,\n    PERMISSION VARCHAR2(500)\n) ;\ncomment on table XXL_JOB_USER\n is '\u767b\u5f55\u7528\u6237\u4fe1\u606f';\ncomment on column XXL_JOB_USER.ID\n is '\u4e3b\u952eID';\ncomment on column XXL_JOB_USER.USERNAME\n is '\u8d26\u53f7';\ncomment on column XXL_JOB_USER.PASSWORD\n is '\u5bc6\u7801';\ncomment on column XXL_JOB_USER.ROLE\n is '\u89d2\u8272\uff1a0-\u666e\u901a\u7528\u6237\u30011-\u7ba1\u7406\u5458';\ncomment on column XXL_JOB_USER.PERMISSION\n is '\u6743\u9650\uff1a\u6267\u884c\u5668ID\u5217\u8868\uff0c\u591a\u4e2a\u9017\u53f7\u5206\u5272';\nalter table XXL_JOB_USER add constraint PK_XXL_JOB_USER primary key (ID)  ;\n\n\n\nDROP sequence XXL_JOB_GROUP_ID;\ncreate sequence XXL_JOB_GROUP_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 2\n    increment by 1\n    cache 20\ncycle;\n\nDROP sequence XXL_JOB_INFO_ID;\ncreate sequence XXL_JOB_INFO_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 2\n    increment by 1\n    cache 20\ncycle;\n\nDROP sequence XXL_JOB_LOGGLUE_ID;\ncreate sequence XXL_JOB_LOGGLUE_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 1\n    increment by 1\n    cache 20\ncycle;\n\nDROP sequence XXL_JOB_LOG_ID;\ncreate sequence XXL_JOB_LOG_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 1\n    increment by 1\n    cache 20\ncycle;\n\nDROP sequence XXL_JOB_LOG_REPORT_ID;\ncreate sequence XXL_JOB_LOG_REPORT_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 2\n    increment by 1\n    cache 20\ncycle;\n\nDROP sequence XXL_JOB_REGISTRY_ID;\ncreate sequence XXL_JOB_REGISTRY_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 1\n    increment by 1\n    cache 20\ncycle;\n\nDROP sequence XXL_JOB_USER_ID;\ncreate sequence XXL_JOB_USER_ID\n    minvalue 1\n    maxvalue 999999999999\n    start with 2\n    increment by 1\n    cache 20\ncycle;\n\nINSERT INTO xxl_job_group(id, app_name, title, address_type, address_list) VALUES (1, 'xxl-job-executor-sample', '\u793a\u4f8b\u6267\u884c\u5668',  0, NULL);\nINSERT INTO xxl_job_user(id, username, password, role, permission) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);\nINSERT INTO xxl_job_lock ( lock_name) VALUES ( 'schedule_lock');<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">POM\u6dfb\u52a0Oracle\u9a71\u52a8<\/h3>\n\n\n\n<p>\u5728xxl-job-admin \u6a21\u5757\u4e2d\u7684pom.xml \u5f15\u5165Oracle\u7684\u9a71\u52a8<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!--Oracle\u6570\u636e\u5e93\u4f9d\u8d56--&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;com.oracle.database.jdbc&lt;\/groupId&gt;\n    &lt;artifactId&gt;ojdbc8&lt;\/artifactId&gt;\n    &lt;version&gt;19.3.0.0&lt;\/version&gt;\n&lt;\/dependency&gt;\n&lt;!--\u89e3\u51b3Oracle\u5b57\u7b26\u96c6\u95ee\u9898--&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;cn.easyproject&lt;\/groupId&gt;\n    &lt;artifactId&gt;orai18n&lt;\/artifactId&gt;\n    &lt;version&gt;12.1.0.2.0&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4fee\u6539YAML\u6587\u4ef6<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>driver-class-name: oracle.jdbc.OracleDriver\n\nconnection-test-query: SELECT 1 FROM DUAL<\/code><\/pre>\n\n\n\n<p>\u6570\u636e\u5e93url,username,password \u6362\u6210\u81ea\u5df1\u7684\u5c31\u884c\u4e86<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4fee\u6539Mapper \u4e2d\u7684\u8bed\u53e5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u95ee\u9898\uff1a<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8868\u522b\u540d AS t \u9700\u8981\u66ff\u6362\u6210 t<\/li>\n\n\n\n<li>MySQL \u8f6c\u4e49\u5b57\u7b26 ` \u66ff\u6362\u6210\u7a7a\u683c<\/li>\n\n\n\n<li>findLogReport \u4e2d\u7684\u5305\u542b\u5c0f\u5199\u5b57\u6bcd\u522b\u540d\u7684\u5b57\u6bb5\uff0c\u9700\u8981\u7528\u53cc\u5f15\u53f7\u8f6c\u4e49\uff0c\u4fdd\u8bc1 SQL \u8bed\u53e5\u6b63\u786e<\/li>\n\n\n\n<li>\u6709\u7684 update \u8bed\u53e5\u4e2d\uff0c\u4e3a\u5b57\u6bb5\u8bbe\u7f6e jdbcType \u5c5e\u6027<\/li>\n\n\n\n<li>\u6240\u6709\u7684 insert \u8bed\u53e5\u4e2d\u7684\u81ea\u589e ID\uff0c\u63d2\u5165\u5217\u52a0 ID\uff0c\u503c\u4e3a\u5e8f\u5217\u503c<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">\u6539\u9020\u5b8c\u540e\u7684mapper<\/h4>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>XxlJobGroupMapper.xml<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\" \n    \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n&lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobGroupDao\"&gt;\n\n    &lt;resultMap id=\"XxlJobGroup\" type=\"com.xxl.job.admin.core.model.XxlJobGroup\" &gt;\n        &lt;result column=\"id\" property=\"id\" \/&gt;\n        &lt;result column=\"app_name\" property=\"appname\" \/&gt;\n        &lt;result column=\"title\" property=\"title\" \/&gt;\n        &lt;result column=\"address_type\" property=\"addressType\" \/&gt;\n        &lt;result column=\"address_list\" property=\"addressList\" \/&gt;\n        &lt;result column=\"update_time\" property=\"updateTime\" \/&gt;\n    &lt;\/resultMap&gt;\n\n    &lt;sql id=\"Base_Column_List\"&gt;\n        t.id,\n        t.app_name,\n        t.title,\n        t.address_type,\n        t.address_list,\n        t.update_time\n    &lt;\/sql&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n    &lt;sql id='XXL_JOB_GROUP_ID'&gt;XXL_JOB_GROUP_ID.NEXTVAL&lt;\/sql&gt;\n    &lt;select id=\"findAll\" resultMap=\"XxlJobGroup\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_group t\n        ORDER BY t.app_name, t.title, t.id ASC\n    &lt;\/select&gt;\n\n    &lt;select id=\"findByAddressType\" parameterType=\"java.lang.Integer\" resultMap=\"XxlJobGroup\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_group t\n        WHERE t.address_type = #{addressType}\n        ORDER BY t.app_name, t.title, t.id ASC\n    &lt;\/select&gt;\n\n    &lt;insert id=\"save\" parameterType=\"com.xxl.job.admin.core.model.XxlJobGroup\" useGeneratedKeys=\"true\" keyProperty=\"id\" &gt;\n        &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n            select &lt;include refid=\"XXL_JOB_GROUP_ID\" \/&gt; from dual\n        &lt;\/selectKey&gt;\n        INSERT INTO xxl_job_group (id, app_name, title, address_type, address_list, update_time)\n        values ( #{id}, #{appname,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, #{addressType,jdbcType=VARCHAR}, #{addressList,jdbcType=CLOB}, #{updateTime} )\n    &lt;\/insert&gt;\n\n    &lt;update id=\"update\" parameterType=\"com.xxl.job.admin.core.model.XxlJobGroup\" &gt;\n        UPDATE xxl_job_group\n        SET app_name = #{appname,jdbcType=VARCHAR},\n            title = #{title,jdbcType=VARCHAR},\n            address_type = #{addressType,jdbcType=VARCHAR},\n            address_list = #{addressList,jdbcType=CLOB},\n            update_time = #{updateTime,jdbcType=DATE}\n        WHERE id = #{id}\n    &lt;\/update&gt;\n\n    &lt;delete id=\"remove\" parameterType=\"java.lang.Integer\" &gt;\n        DELETE FROM xxl_job_group\n        WHERE id = #{id}\n    &lt;\/delete&gt;\n\n    &lt;select id=\"load\" parameterType=\"java.lang.Integer\" resultMap=\"XxlJobGroup\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_group t\n        WHERE t.id = #{id}\n    &lt;\/select&gt;\n\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u4e09\u5c42\u5206\u9875 --&gt;\n    &lt;select id=\"pageList\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobGroup\"&gt;\n        select *\n        from (select *\n        from (select A.*, rownum rn\n        from (\n            SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n            FROM xxl_job_group t\n            &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n                &lt;if test=\"appname != null and appname != ''\"&gt;\n                    AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%')\n                &lt;\/if&gt;\n                &lt;if test=\"title != null and title != ''\"&gt;\n                    AND t.title like CONCAT(CONCAT('%', #{title}), '%')\n                &lt;\/if&gt;\n            &lt;\/trim&gt;\n            ORDER BY t.app_name, t.title, t.id ASC) A)\n        where rn &gt; #{offset}) B\n        &lt;!&#91;CDATA&#91;   where rn &lt;= #{offset}+ #{pagesize} ]]&gt;\n\n    &lt;\/select&gt;\n\n    &lt;select id=\"pageListCount\" parameterType=\"java.util.HashMap\" resultType=\"int\"&gt;\n        SELECT count(1)\n        FROM xxl_job_group t\n        &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n            &lt;if test=\"appname != null and appname != ''\"&gt;\n                AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%')\n            &lt;\/if&gt;\n            &lt;if test=\"title != null and title != ''\"&gt;\n                AND t.title like CONCAT(CONCAT('%', #{title}), '%')\n            &lt;\/if&gt;\n        &lt;\/trim&gt;\n    &lt;\/select&gt;\n\n&lt;\/mapper&gt;<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>XxlJobInfoMapper.xml<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\"\n    \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n&lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobInfoDao\"&gt;\n\n    &lt;resultMap id=\"XxlJobInfo\" type=\"com.xxl.job.admin.core.model.XxlJobInfo\" &gt;\n        &lt;result column=\"id\" property=\"id\" \/&gt;\n\n        &lt;result column=\"job_group\" property=\"jobGroup\" \/&gt;\n        &lt;result column=\"job_desc\" property=\"jobDesc\" \/&gt;\n\n        &lt;result column=\"add_time\" property=\"addTime\"  jdbcType=\"DATE\"\/&gt;\n        &lt;result column=\"update_time\" property=\"updateTime\" jdbcType=\"DATE\"\/&gt;\n\n        &lt;result column=\"author\" property=\"author\"  jdbcType=\"VARCHAR\"\/&gt;\n        &lt;result column=\"alarm_email\" property=\"alarmEmail\" jdbcType=\"VARCHAR\"\/&gt;\n\n        &lt;result column=\"schedule_type\" property=\"scheduleType\"  jdbcType=\"VARCHAR\"\/&gt;\n        &lt;result column=\"schedule_conf\" property=\"scheduleConf\"  jdbcType=\"VARCHAR\"\/&gt;\n        &lt;result column=\"misfire_strategy\" property=\"misfireStrategy\"  jdbcType=\"VARCHAR\"\/&gt;\n\n        &lt;result column=\"executor_route_strategy\" property=\"executorRouteStrategy\"  jdbcType=\"VARCHAR\"\/&gt;\n        &lt;result column=\"executor_handler\" property=\"executorHandler\" \/&gt;\n        &lt;result column=\"executor_param\" property=\"executorParam\" \/&gt;\n        &lt;result column=\"executor_block_strategy\" property=\"executorBlockStrategy\" \/&gt;\n        &lt;result column=\"executor_timeout\" property=\"executorTimeout\" \/&gt;\n        &lt;result column=\"executor_fail_retry_count\" property=\"executorFailRetryCount\" \/&gt;\n\n        &lt;result column=\"glue_type\" property=\"glueType\" \/&gt;\n        &lt;result column=\"glue_source\" property=\"glueSource\"  jdbcType=\"CLOB\"\/&gt;\n        &lt;result column=\"glue_remark\" property=\"glueRemark\" \/&gt;\n        &lt;result column=\"glue_updatetime\" property=\"glueUpdatetime\"  jdbcType=\"DATE\"\/&gt;\n\n        &lt;result column=\"child_jobid\" property=\"childJobId\" \/&gt;\n\n        &lt;result column=\"trigger_status\" property=\"triggerStatus\" \/&gt;\n        &lt;result column=\"trigger_last_time\" property=\"triggerLastTime\" \/&gt;\n        &lt;result column=\"trigger_next_time\" property=\"triggerNextTime\" \/&gt;\n    &lt;\/resultMap&gt;\n\n    &lt;sql id=\"Base_Column_List\"&gt;\n        t.id,\n        t.job_group,\n        t.job_desc,\n        t.add_time,\n        t.update_time,\n        t.author,\n        t.alarm_email,\n        t.schedule_type,\n        t.schedule_conf,\n        t.misfire_strategy,\n        t.executor_route_strategy,\n        t.executor_handler,\n        t.executor_param,\n        t.executor_block_strategy,\n        t.executor_timeout,\n        t.executor_fail_retry_count,\n        t.glue_type,\n        t.glue_source,\n        t.glue_remark,\n        t.glue_updatetime,\n        t.child_jobid,\n        t.trigger_status,\n        t.trigger_last_time,\n        t.trigger_next_time\n    &lt;\/sql&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n    &lt;sql id='XXL_JOB_INFO_ID'&gt;XXL_JOB_INFO_ID.NEXTVAL&lt;\/sql&gt;\n\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u4e09\u5c42\u5206\u9875 --&gt;\n    &lt;select id=\"pageList\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobInfo\"&gt;\n        select *\n        from (select *\n        from (select A.*, rownum rn\n        from (\n            SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n            FROM xxl_job_info t\n            &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n                &lt;if test=\"jobGroup gt 0\"&gt;\n                    AND t.job_group = #{jobGroup}\n                &lt;\/if&gt;\n                &lt;if test=\"triggerStatus gte 0\"&gt;\n                    AND t.trigger_status = #{triggerStatus}\n                &lt;\/if&gt;\n                &lt;if test=\"jobDesc != null and jobDesc != ''\"&gt;\n                    AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%')\n                &lt;\/if&gt;\n                &lt;if test=\"executorHandler != null and executorHandler != ''\"&gt;\n                    AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%')\n                &lt;\/if&gt;\n                &lt;if test=\"author != null and author != ''\"&gt;\n                    AND t.author like CONCAT(CONCAT('%', #{author}), '%')\n                &lt;\/if&gt;\n            &lt;\/trim&gt;\n            ORDER BY id DESC) A)\n        where rn &gt; #{offset}) B\n        &lt;!&#91;CDATA&#91;   where rn &lt;= #{offset}+ #{pagesize} ]]&gt;\n    &lt;\/select&gt;\n\n    &lt;select id=\"pageListCount\" parameterType=\"java.util.HashMap\" resultType=\"int\"&gt;\n        SELECT count(1)\n        FROM xxl_job_info t\n        &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n            &lt;if test=\"jobGroup gt 0\"&gt;\n                AND t.job_group = #{jobGroup}\n            &lt;\/if&gt;\n            &lt;if test=\"triggerStatus gte 0\"&gt;\n                AND t.trigger_status = #{triggerStatus}\n            &lt;\/if&gt;\n            &lt;if test=\"jobDesc != null and jobDesc != ''\"&gt;\n                AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%')\n            &lt;\/if&gt;\n            &lt;if test=\"executorHandler != null and executorHandler != ''\"&gt;\n                AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%')\n            &lt;\/if&gt;\n            &lt;if test=\"author != null and author != ''\"&gt;\n                AND t.author like CONCAT(CONCAT('%', #{author}), '%')\n            &lt;\/if&gt;\n        &lt;\/trim&gt;\n    &lt;\/select&gt;\n\n    &lt;insert id=\"save\" parameterType=\"com.xxl.job.admin.core.model.XxlJobInfo\" useGeneratedKeys=\"true\" keyProperty=\"id\" &gt;\n        &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n            select &lt;include refid=\"XXL_JOB_INFO_ID\" \/&gt; from dual\n        &lt;\/selectKey&gt;\n        INSERT INTO xxl_job_info (\n            id,\n            job_group,\n            job_desc,\n            add_time,\n            update_time,\n            author,\n            alarm_email,\n            schedule_type,\n            schedule_conf,\n            misfire_strategy,\n            executor_route_strategy,\n            executor_handler,\n            executor_param,\n            executor_block_strategy,\n            executor_timeout,\n            executor_fail_retry_count,\n            glue_type,\n            glue_source,\n            glue_remark,\n            glue_updatetime,\n            child_jobid,\n            trigger_status,\n            trigger_last_time,\n            trigger_next_time\n        ) VALUES (\n            #{id},\n            #{jobGroup},\n            #{jobDesc},\n            #{addTime},\n            #{updateTime},\n            #{author},\n            #{alarmEmail},\n            #{scheduleType},\n            #{scheduleConf},\n            #{misfireStrategy},\n            #{executorRouteStrategy},\n            #{executorHandler},\n            #{executorParam},\n            #{executorBlockStrategy},\n            #{executorTimeout},\n            #{executorFailRetryCount},\n            #{glueType},\n            #{glueSource,jdbcType=CLOB},\n            #{glueRemark},\n            #{glueUpdatetime},\n            #{childJobId},\n            #{triggerStatus},\n            #{triggerLastTime},\n            #{triggerNextTime}\n        )\n    &lt;\/insert&gt;\n\n    &lt;select id=\"loadById\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobInfo\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_info t\n        WHERE t.id = #{id}\n    &lt;\/select&gt;\n\n    &lt;update id=\"update\" parameterType=\"com.xxl.job.admin.core.model.XxlJobInfo\" &gt;\n        UPDATE xxl_job_info\n        SET\n            job_group = #{jobGroup},\n            job_desc = #{jobDesc,jdbcType=VARCHAR},\n            update_time = #{updateTime,jdbcType=DATE},\n            author = #{author,jdbcType=VARCHAR},\n            alarm_email = #{alarmEmail,jdbcType=VARCHAR},\n            schedule_type = #{scheduleType,jdbcType=VARCHAR},\n            schedule_conf = #{scheduleConf,jdbcType=VARCHAR},\n            misfire_strategy = #{misfireStrategy,jdbcType=VARCHAR},\n            executor_route_strategy = #{executorRouteStrategy,jdbcType=VARCHAR},\n            executor_handler = #{executorHandler,jdbcType=VARCHAR},\n            executor_param = #{executorParam,jdbcType=VARCHAR},\n            executor_block_strategy = #{executorBlockStrategy,jdbcType=VARCHAR},\n            executor_timeout = ${executorTimeout},\n            executor_fail_retry_count = ${executorFailRetryCount},\n            glue_type = #{glueType,jdbcType=VARCHAR},\n            glue_source = #{glueSource,jdbcType=CLOB},\n            glue_remark = #{glueRemark,jdbcType=VARCHAR},\n            glue_updatetime = #{glueUpdatetime,jdbcType=DATE},\n            child_jobid = #{childJobId,jdbcType=VARCHAR},\n            trigger_status = #{triggerStatus,jdbcType=VARCHAR},\n            trigger_last_time = #{triggerLastTime},\n            trigger_next_time = #{triggerNextTime}\n        WHERE id = #{id}\n    &lt;\/update&gt;\n\n    &lt;delete id=\"delete\" parameterType=\"java.util.HashMap\"&gt;\n        DELETE\n        FROM xxl_job_info\n        WHERE id = #{id}\n    &lt;\/delete&gt;\n\n    &lt;select id=\"getJobsByGroup\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobInfo\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_info t\n        WHERE t.job_group = #{jobGroup}\n    &lt;\/select&gt;\n\n    &lt;select id=\"findAllCount\" resultType=\"int\"&gt;\n        SELECT count(1)\n        FROM xxl_job_info\n    &lt;\/select&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u5206\u9875 --&gt;\n    &lt;select id=\"scheduleJobQuery\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobInfo\"&gt;\n        select &lt;include refid=\"Base_Column_List\" \/&gt; from (\n            SELECT *\n            FROM xxl_job_info a\n            WHERE a.trigger_status = 1\n                and a.trigger_next_time &lt;!&#91;CDATA&#91; &lt;= ]]&gt; #{maxNextTime,jdbcType=NUMERIC}\n            ORDER BY id ASC\n        )  t where &lt;!&#91;CDATA&#91;  rownum &lt; #{pagesize} ]]&gt;\n    &lt;\/select&gt;\n\n    &lt;update id=\"scheduleUpdate\" parameterType=\"com.xxl.job.admin.core.model.XxlJobInfo\"  &gt;\n        UPDATE xxl_job_info\n        SET\n            trigger_last_time = #{triggerLastTime,jdbcType=NUMERIC},\n            trigger_next_time = #{triggerNextTime,jdbcType=NUMERIC},\n            trigger_status = #{triggerStatus,jdbcType=NUMERIC}\n        WHERE id = #{id}\n    &lt;\/update&gt;\n&lt;\/mapper&gt;<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>XxlJobLogGlueMapper.xml<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\" \n    \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n&lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobLogGlueDao\"&gt;\n\n    &lt;resultMap id=\"XxlJobLogGlue\" type=\"com.xxl.job.admin.core.model.XxlJobLogGlue\" &gt;\n        &lt;result column=\"id\" property=\"id\" \/&gt;\n        &lt;result column=\"job_id\" property=\"jobId\" \/&gt;\n        &lt;result column=\"glue_type\" property=\"glueType\" \/&gt;\n        &lt;result column=\"glue_source\" property=\"glueSource\" \/&gt;\n        &lt;result column=\"glue_remark\" property=\"glueRemark\" \/&gt;\n        &lt;result column=\"add_time\" property=\"addTime\" \/&gt;\n        &lt;result column=\"update_time\" property=\"updateTime\" \/&gt;\n    &lt;\/resultMap&gt;\n\n    &lt;sql id=\"Base_Column_List\"&gt;\n        t.id,\n        t.job_id,\n        t.glue_type,\n        t.glue_source,\n        t.glue_remark,\n        t.add_time,\n        t.update_time\n    &lt;\/sql&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n    &lt;sql id='XXL_JOB_LOGGLUE_ID'&gt;XXL_JOB_LOGGLUE_ID.NEXTVAL&lt;\/sql&gt;\n\n    &lt;insert id=\"save\" parameterType=\"com.xxl.job.admin.core.model.XxlJobLogGlue\" useGeneratedKeys=\"true\" keyProperty=\"id\" &gt;\n        &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n            select &lt;include refid=\"XXL_JOB_LOGGLUE_ID\" \/&gt; from dual\n        &lt;\/selectKey&gt;\n        INSERT INTO xxl_job_logglue (\n            id,\n            job_id,\n            glue_type,\n            glue_source,\n            glue_remark,\n            add_time, \n            update_time\n        ) VALUES (\n            #{id},\n            #{jobId},\n            #{glueType},\n            #{glueSource},\n            #{glueRemark},\n            #{addTime},\n            #{updateTime}\n        )\n    &lt;\/insert&gt;\n\n    &lt;select id=\"findByJobId\" parameterType=\"java.lang.Integer\" resultMap=\"XxlJobLogGlue\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_logglue t\n        WHERE t.job_id = #{jobId}\n        ORDER BY id DESC\n    &lt;\/select&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u5206\u9875 --&gt;\n    &lt;delete id=\"removeOld\" &gt;\n        DELETE FROM xxl_job_logglue\n        WHERE id NOT in(\n            SELECT id FROM(\n                select id from (\n                        SELECT id FROM xxl_job_logglue\n                        WHERE job_id = #{jobId}\n                        ORDER BY update_time desc) a\n            &lt;!&#91;CDATA&#91;where rownum &lt;  #{limit} ]]&gt;\n            ) t1\n        ) AND job_id = #{jobId}\n    &lt;\/delete&gt;\n\n    &lt;delete id=\"deleteByJobId\" parameterType=\"java.lang.Integer\" &gt;\n        DELETE FROM xxl_job_logglue\n        WHERE job_id = #{jobId}\n    &lt;\/delete&gt;\n\n&lt;\/mapper&gt;<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>XxlJobLogMapper.xml<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n    &lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\" \n        \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n    &lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobLogDao\"&gt;\n\n        &lt;resultMap id=\"XxlJobLog\" type=\"com.xxl.job.admin.core.model.XxlJobLog\" &gt;\n            &lt;result column=\"id\" property=\"id\" \/&gt;\n\n            &lt;result column=\"job_group\" property=\"jobGroup\" \/&gt;\n            &lt;result column=\"job_id\" property=\"jobId\" \/&gt;\n\n            &lt;result column=\"executor_address\" property=\"executorAddress\" \/&gt;\n            &lt;result column=\"executor_handler\" property=\"executorHandler\" \/&gt;\n            &lt;result column=\"executor_param\" property=\"executorParam\" \/&gt;\n            &lt;result column=\"executor_sharding_param\" property=\"executorShardingParam\" \/&gt;\n            &lt;result column=\"executor_fail_retry_count\" property=\"executorFailRetryCount\" \/&gt;\n\n            &lt;result column=\"trigger_time\" property=\"triggerTime\" \/&gt;\n            &lt;result column=\"trigger_code\" property=\"triggerCode\" \/&gt;\n            &lt;result column=\"trigger_msg\" property=\"triggerMsg\" \/&gt;\n\n            &lt;result column=\"handle_time\" property=\"handleTime\" \/&gt;\n            &lt;result column=\"handle_code\" property=\"handleCode\" \/&gt;\n            &lt;result column=\"handle_msg\" property=\"handleMsg\" \/&gt;\n\n            &lt;result column=\"alarm_status\" property=\"alarmStatus\" \/&gt;\n        &lt;\/resultMap&gt;\n\n        &lt;sql id=\"Base_Column_List\"&gt;\n            t.id,\n            t.job_group,\n            t.job_id,\n            t.executor_address,\n            t.executor_handler,\n            t.executor_param,\n            t.executor_sharding_param,\n            t.executor_fail_retry_count,\n            t.trigger_time,\n            t.trigger_code,\n            t.trigger_msg,\n            t.handle_time,\n            t.handle_code,\n            t.handle_msg,\n            t.alarm_status\n        &lt;\/sql&gt;\n        &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n        &lt;sql id='XXL_JOB_LOG_ID'&gt;XXL_JOB_LOG_ID.NEXTVAL&lt;\/sql&gt;\n\n        &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u4e09\u5c42\u5206\u9875 --&gt;\n        &lt;select id=\"pageList\" resultMap=\"XxlJobLog\"&gt;\n            select *\n            from (select *\n             from (select A.*, rownum rn\n                from (\n\n                        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n                        FROM xxl_job_log t\n                        &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n                            &lt;if test=\"jobId==0 and jobGroup gt 0\"&gt;\n                                AND t.job_group = #{jobGroup}\n                            &lt;\/if&gt;\n                            &lt;if test=\"jobId gt 0\"&gt;\n                                AND t.job_id = #{jobId}\n                            &lt;\/if&gt;\n                            &lt;if test=\"triggerTimeStart != null\"&gt;\n                                AND t.trigger_time &lt;!&#91;CDATA&#91; &gt;= ]]&gt; #{triggerTimeStart}\n                            &lt;\/if&gt;\n                            &lt;if test=\"triggerTimeEnd != null\"&gt;\n                                AND t.trigger_time &lt;!&#91;CDATA&#91; &lt;= ]]&gt; #{triggerTimeEnd}\n                            &lt;\/if&gt;\n                            &lt;if test=\"logStatus == 1\" &gt;\n                                AND t.handle_code = 200\n                            &lt;\/if&gt;\n                            &lt;if test=\"logStatus == 2\" &gt;\n                                AND (\n                                    t.trigger_code NOT IN (0, 200) OR\n                                    t.handle_code NOT IN (0, 200)\n                                )\n                            &lt;\/if&gt;\n                            &lt;if test=\"logStatus == 3\" &gt;\n                                AND t.trigger_code = 200\n                                AND t.handle_code = 0\n                            &lt;\/if&gt;\n                        &lt;\/trim&gt;\n                        ORDER BY t.trigger_time DESC) A)\n            where rn &gt; #{offset}) B\n            &lt;!&#91;CDATA&#91;    where rn &lt;= #{offset}+ #{pagesize} ]]&gt;\n        &lt;\/select&gt;\n\n        &lt;select id=\"pageListCount\" resultType=\"int\"&gt;\n            SELECT count(1)\n            FROM xxl_job_log t\n            &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n                &lt;if test=\"jobId==0 and jobGroup gt 0\"&gt;\n                    AND t.job_group = #{jobGroup}\n                &lt;\/if&gt;\n                &lt;if test=\"jobId gt 0\"&gt;\n                    AND t.job_id = #{jobId}\n                &lt;\/if&gt;\n                &lt;if test=\"triggerTimeStart != null\"&gt;\n                    AND t.trigger_time &lt;!&#91;CDATA&#91; &gt;= ]]&gt; #{triggerTimeStart}\n                &lt;\/if&gt;\n                &lt;if test=\"triggerTimeEnd != null\"&gt;\n                    AND t.trigger_time &lt;!&#91;CDATA&#91; &lt;= ]]&gt; #{triggerTimeEnd}\n                &lt;\/if&gt;\n                &lt;if test=\"logStatus == 1\" &gt;\n                    AND t.handle_code = 200\n                &lt;\/if&gt;\n                &lt;if test=\"logStatus == 2\" &gt;\n                    AND (\n                        t.trigger_code NOT IN (0, 200) OR\n                        t.handle_code NOT IN (0, 200)\n                    )\n                &lt;\/if&gt;\n                &lt;if test=\"logStatus == 3\" &gt;\n                    AND t.trigger_code = 200\n                    AND t.handle_code = 0\n                &lt;\/if&gt;\n            &lt;\/trim&gt;\n        &lt;\/select&gt;\n\n        &lt;select id=\"load\" parameterType=\"java.lang.Long\" resultMap=\"XxlJobLog\"&gt;\n            SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n            FROM xxl_job_log t\n            WHERE t.id = #{id}\n        &lt;\/select&gt;\n\n\n        &lt;insert id=\"save\" parameterType=\"com.xxl.job.admin.core.model.XxlJobLog\" useGeneratedKeys=\"true\" keyProperty=\"id\" &gt;\n            &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n                select &lt;include refid=\"XXL_JOB_LOG_ID\" \/&gt; from dual\n            &lt;\/selectKey&gt;\n            INSERT INTO xxl_job_log (\n                id,\n                job_group,\n                job_id,\n                trigger_time,\n                trigger_code,\n                handle_code\n            ) VALUES (\n                #{id},\n                #{jobGroup},\n                #{jobId},\n                #{triggerTime},\n                #{triggerCode},\n                #{handleCode}\n            )\n            &lt;!--&lt;selectKey resultType=\"java.lang.Integer\" order=\"AFTER\" keyProperty=\"id\"&gt;\n                SELECT LAST_INSERT_ID() \n            &lt;\/selectKey&gt;--&gt;\n        &lt;\/insert&gt;\n\n        &lt;update id=\"updateTriggerInfo\" &gt;\n            UPDATE xxl_job_log\n            SET\n                trigger_time= #{triggerTime,jdbcType=DATE},\n                trigger_code= #{triggerCode,jdbcType=VARCHAR},\n                trigger_msg= #{triggerMsg,jdbcType=VARCHAR},\n                executor_address= #{executorAddress,jdbcType=VARCHAR},\n                executor_handler=#{executorHandler,jdbcType=VARCHAR},\n                executor_param= #{executorParam,jdbcType=VARCHAR},\n                executor_sharding_param= #{executorShardingParam,jdbcType=VARCHAR},\n                executor_fail_retry_count= #{executorFailRetryCount,jdbcType=VARCHAR}\n            WHERE id= #{id,jdbcType=VARCHAR}\n        &lt;\/update&gt;\n\n        &lt;update id=\"updateHandleInfo\"&gt;\n            UPDATE xxl_job_log\n            SET \n                handle_time= #{handleTime,jdbcType=DATE},\n                handle_code= #{handleCode,jdbcType=VARCHAR},\n                handle_msg= #{handleMsg,jdbcType=CLOB}\n            WHERE id= #{id}\n        &lt;\/update&gt;\n\n        &lt;delete id=\"delete\" &gt;\n            delete from xxl_job_log\n            WHERE job_id = #{jobId}\n        &lt;\/delete&gt;\n\n        &lt;select id=\"findLogReport\" resultType=\"java.util.Map\" &gt;\n            SELECT\n                COUNT(handle_code) triggerDayCount,\n                SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,\n                SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc\n            FROM xxl_job_log\n            WHERE trigger_time BETWEEN #{from} and #{to}\n        &lt;\/select&gt;\n\n        &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u4e09\u5c42\u5206\u9875 --&gt;\n        &lt;select id=\"findClearLogIds\" resultType=\"long\" &gt;\n            select id from\n            (select id,rownum rn from (\n            SELECT id FROM xxl_job_log\n            &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n                &lt;if test=\"jobGroup gt 0\"&gt;\n                    AND job_group = #{jobGroup}\n                &lt;\/if&gt;\n                &lt;if test=\"jobId gt 0\"&gt;\n                    AND job_id = #{jobId}\n                &lt;\/if&gt;\n                &lt;if test=\"clearBeforeTime != null\"&gt;\n                    AND trigger_time &lt;!&#91;CDATA&#91; &lt;= ]]&gt; #{clearBeforeTime}\n                &lt;\/if&gt;\n                &lt;if test=\"clearBeforeNum gt 0\"&gt;\n                    AND id NOT in(\n                    SELECT id FROM(\n                        SELECT id FROM xxl_job_log t\n                        &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n                            &lt;if test=\"jobGroup gt 0\"&gt;\n                                AND t.job_group = #{jobGroup}\n                            &lt;\/if&gt;\n                            &lt;if test=\"jobId gt 0\"&gt;\n                                AND t.job_id = #{jobId}\n                            &lt;\/if&gt;\n                        &lt;\/trim&gt;\n                        ORDER BY t.trigger_time desc\n\n                        ) t1 where where &lt;!&#91;CDATA&#91;  rownum &lt; #{clearBeforeNum} ]]&gt;\n                    )\n                &lt;\/if&gt;\n            &lt;\/trim&gt;\n            order by id asc\n            ) )\n            where &lt;!&#91;CDATA&#91;  rn &lt;= #{pagesize} ]]&gt;\n        &lt;\/select&gt;\n\n        &lt;delete id=\"clearLog\" &gt;\n            delete from xxl_job_log\n            WHERE id in\n            &lt;foreach collection=\"logIds\" item=\"item\" open=\"(\" close=\")\" separator=\",\" &gt;\n                #{item}\n            &lt;\/foreach&gt;\n        &lt;\/delete&gt;\n\n        &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u5206\u9875 --&gt;\n        &lt;select id=\"findFailJobLogIds\" resultType=\"long\" &gt;\n        select id from (\n            SELECT id\n              FROM xxl_job_log\n             WHERE 1 = 1\n               and (trigger_code not in (0, 200) and handle_code != 0)\n                OR (handle_code != 200)\n               AND alarm_status = 0\n             ORDER BY id ASC\n            ) where &lt;!&#91;CDATA&#91;  rownum &lt; #{pagesize} ]]&gt;\n        &lt;\/select&gt;\n\n        &lt;update id=\"updateAlarmStatus\" &gt;\n            UPDATE xxl_job_log\n            SET\n                alarm_status = #{newAlarmStatus}\n            WHERE id= #{logId} AND alarm_status = #{oldAlarmStatus}\n        &lt;\/update&gt;\n\n        &lt;select id=\"findLostJobIds\" resultType=\"long\" &gt;\n            SELECT\n                t.id\n            FROM\n                xxl_job_log t\n                LEFT JOIN xxl_job_registry t2 ON t.executor_address = t2.registry_value\n            WHERE\n                t.trigger_code = 200\n                    AND t.handle_code = 0\n                    AND t.trigger_time &lt;!&#91;CDATA&#91; &lt;= ]]&gt; #{losedTime}\n                    AND t2.id IS NULL\n        &lt;\/select&gt;\n    &lt;\/mapper&gt;\n\n&gt; XxlJobLogReportMapper.xml\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\" \n    \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n&lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobLogReportDao\"&gt;\n\n    &lt;resultMap id=\"XxlJobLogReport\" type=\"com.xxl.job.admin.core.model.XxlJobLogReport\" &gt;\n        &lt;result column=\"id\" property=\"id\" \/&gt;\n        &lt;result column=\"trigger_day\" property=\"triggerDay\" \/&gt;\n        &lt;result column=\"running_count\" property=\"runningCount\" \/&gt;\n        &lt;result column=\"suc_count\" property=\"sucCount\" \/&gt;\n        &lt;result column=\"fail_count\" property=\"failCount\" \/&gt;\n    &lt;\/resultMap&gt;\n\n    &lt;sql id=\"Base_Column_List\"&gt;\n        t.id,\n        t.trigger_day,\n        t.running_count,\n        t.suc_count,\n        t.fail_count\n    &lt;\/sql&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n    &lt;sql id='XXL_JOB_LOG_REPORT_ID'&gt;XXL_JOB_LOG_REPORT_ID.NEXTVAL&lt;\/sql&gt;\n\n    &lt;insert id=\"save\" parameterType=\"com.xxl.job.admin.core.model.XxlJobLogReport\" useGeneratedKeys=\"true\" keyProperty=\"id\" &gt;\n        &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n            select &lt;include refid=\"XXL_JOB_LOG_REPORT_ID\" \/&gt; from dual\n        &lt;\/selectKey&gt;\n        INSERT INTO xxl_job_log_report (\n            id,\n            trigger_day,\n            running_count,\n            suc_count,\n            fail_count\n        ) VALUES (\n            #{id},\n            #{triggerDay},\n            #{runningCount},\n            #{sucCount},\n            #{failCount}\n        )\n    &lt;\/insert&gt;\n\n    &lt;update id=\"update\" &gt;\n        UPDATE xxl_job_log_report\n        SET running_count = #{runningCount},\n            suc_count = #{sucCount},\n            fail_count = #{failCount}\n        WHERE trigger_day = #{triggerDay}\n    &lt;\/update&gt;\n\n    &lt;select id=\"queryLogReport\" resultMap=\"XxlJobLogReport\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_log_report t\n        WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo}\n        ORDER BY t.trigger_day ASC\n    &lt;\/select&gt;\n\n    &lt;select id=\"queryLogReportTotal\" resultMap=\"XxlJobLogReport\"&gt;\n        SELECT\n            SUM(running_count) running_count,\n            SUM(suc_count) suc_count,\n            SUM(fail_count) fail_count\n        FROM xxl_job_log_report t\n    &lt;\/select&gt;\n\n&lt;\/mapper&gt;<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>XxlJobRegistryMapper.xml<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\" \n    \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n&lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobRegistryDao\"&gt;\n\n    &lt;resultMap id=\"XxlJobRegistry\" type=\"com.xxl.job.admin.core.model.XxlJobRegistry\" &gt;\n        &lt;result column=\"id\" property=\"id\" \/&gt;\n        &lt;result column=\"registry_group\" property=\"registryGroup\" \/&gt;\n        &lt;result column=\"registry_key\" property=\"registryKey\" \/&gt;\n        &lt;result column=\"registry_value\" property=\"registryValue\" \/&gt;\n        &lt;result column=\"update_time\" property=\"updateTime\" \/&gt;\n    &lt;\/resultMap&gt;\n\n    &lt;sql id=\"Base_Column_List\"&gt;\n        t.id,\n        t.registry_group,\n        t.registry_key,\n        t.registry_value,\n        t.update_time\n    &lt;\/sql&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n    &lt;sql id='XXL_JOB_REGISTRY_ID'&gt;XXL_JOB_REGISTRY_ID.NEXTVAL&lt;\/sql&gt;\n\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u65f6\u95f4\u95f4\u9694 DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)\u4fee\u6539\u4e3a(#{nowTime}-1\/(24*60*60)*#{timeout})  --&gt;\n    &lt;select id=\"findDead\" parameterType=\"java.util.HashMap\" resultType=\"java.lang.Integer\" &gt;\n        SELECT t.id\n        FROM xxl_job_registry t\n        WHERE t.update_time &lt;!&#91;CDATA&#91; &lt; ]]&gt; (#{nowTime}-1\/(24*60*60)*#{timeout})\n    &lt;\/select&gt;\n\n    &lt;delete id=\"removeDead\" parameterType=\"java.lang.Integer\" &gt;\n        DELETE FROM xxl_job_registry\n        WHERE id in\n        &lt;foreach collection=\"ids\" item=\"item\" open=\"(\" close=\")\" separator=\",\" &gt;\n            #{item}\n        &lt;\/foreach&gt;\n    &lt;\/delete&gt;\n\n    &lt;select id=\"findAll\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobRegistry\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_registry t\n        WHERE t.update_time &lt;!&#91;CDATA&#91; &gt; ]]&gt; (#{nowTime}-1\/(24*60*60)*#{timeout})\n    &lt;\/select&gt;\n\n    &lt;update id=\"registryUpdate\" &gt;\n        UPDATE xxl_job_registry\n        SET update_time = #{updateTime}\n        WHERE registry_group = #{registryGroup}\n          AND registry_key = #{registryKey}\n          AND registry_value = #{registryValue}\n    &lt;\/update&gt;\n\n    &lt;insert id=\"registrySave\" &gt;\n        &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n            select &lt;include refid=\"XXL_JOB_REGISTRY_ID\" \/&gt; from dual\n        &lt;\/selectKey&gt;\n        INSERT INTO xxl_job_registry( id ,registry_group , registry_key , registry_value, update_time)\n        VALUES( #{id}  , #{registryGroup}  , #{registryKey} , #{registryValue}, #{updateTime})\n    &lt;\/insert&gt;\n\n    &lt;delete id=\"registryDelete\" &gt;\n        DELETE FROM xxl_job_registry\n        WHERE registry_group = #{registryGroup}\n            AND registry_key = #{registryKey}\n            AND registry_value = #{registryValue}\n    &lt;\/delete&gt;\n\n&lt;\/mapper&gt;<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>XxlJobUserMapper.xml<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\"\n    \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\"&gt;\n&lt;mapper namespace=\"com.xxl.job.admin.dao.XxlJobUserDao\"&gt;\n\n    &lt;resultMap id=\"XxlJobUser\" type=\"com.xxl.job.admin.core.model.XxlJobUser\" &gt;\n        &lt;result column=\"id\" property=\"id\" \/&gt;\n        &lt;result column=\"username\" property=\"username\" \/&gt;\n        &lt;result column=\"password\" property=\"password\" \/&gt;\n        &lt;result column=\"role\" property=\"role\" \/&gt;\n        &lt;result column=\"permission\" property=\"permission\" \/&gt;\n    &lt;\/resultMap&gt;\n\n    &lt;sql id=\"Base_Column_List\"&gt;\n        t.id,\n        t.username,\n        t.password,\n        t.role,\n        t.permission\n    &lt;\/sql&gt;\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u53d6\u5e8f\u5217 --&gt;\n    &lt;sql id='XXL_JOB_USER_ID'&gt;XXL_JOB_USER_ID.NEXTVAL&lt;\/sql&gt;\n\n    &lt;!--\/\/TODO oracle\u652f\u6301\u8c03\u6574 \u5206\u9875\u4fee\u6539\u4e3aoracle\u4e09\u5c42\u5206\u9875 --&gt;\n    &lt;select id=\"pageList\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobUser\"&gt;\n        select *\n        from (select *\n        from (select A.*, rownum rn\n        from (\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_user t\n        &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n            &lt;if test=\"username != null and username != ''\"&gt;\n                AND t.username like CONCAT(CONCAT('%', #{username}), '%')\n            &lt;\/if&gt;\n            &lt;if test=\"role gt -1\"&gt;\n                AND t.role = #{role}\n            &lt;\/if&gt;\n        &lt;\/trim&gt;\n        ORDER BY username ASC) A)\n        where rn &gt; #{offset}) B\n        &lt;!&#91;CDATA&#91;   where rn &lt;= #{offset}+ #{pagesize} ]]&gt;\n    &lt;\/select&gt;\n\n    &lt;select id=\"pageListCount\" parameterType=\"java.util.HashMap\" resultType=\"int\"&gt;\n        SELECT count(1)\n        FROM xxl_job_user t\n        &lt;trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\" &gt;\n            &lt;if test=\"username != null and username != ''\"&gt;\n                AND t.username like CONCAT(CONCAT('%', #{username}), '%')\n            &lt;\/if&gt;\n            &lt;if test=\"role gt -1\"&gt;\n                AND t.role = #{role}\n            &lt;\/if&gt;\n        &lt;\/trim&gt;\n    &lt;\/select&gt;\n\n    &lt;select id=\"loadByUserName\" parameterType=\"java.util.HashMap\" resultMap=\"XxlJobUser\"&gt;\n        SELECT &lt;include refid=\"Base_Column_List\" \/&gt;\n        FROM xxl_job_user t\n        WHERE t.username = #{username}\n    &lt;\/select&gt;\n\n    &lt;insert id=\"save\" parameterType=\"com.xxl.job.admin.core.model.XxlJobUser\" useGeneratedKeys=\"true\" keyProperty=\"id\" &gt;\n        &lt;selectKey keyProperty=\"id\" resultType=\"int\" order=\"BEFORE\"&gt;\n            select &lt;include refid=\"XXL_JOB_USER_ID\" \/&gt; from dual\n        &lt;\/selectKey&gt;\n        INSERT INTO xxl_job_user (\n            id,\n            username,\n            password,\n            role,\n            permission\n        ) VALUES (\n            #{id},\n            #{username},\n            #{password},\n            #{role},\n            #{permission}\n        )\n    &lt;\/insert&gt;\n\n    &lt;update id=\"update\" parameterType=\"com.xxl.job.admin.core.model.XxlJobUser\" &gt;\n        UPDATE xxl_job_user\n        SET\n            &lt;if test=\"password != null and password != ''\"&gt;\n                password = #{password},\n            &lt;\/if&gt;\n            role = #{role}\n        WHERE id = #{id}\n    &lt;\/update&gt;\n\n    &lt;delete id=\"delete\" parameterType=\"java.util.HashMap\"&gt;\n        DELETE\n        FROM xxl_job_user\n        WHERE id = #{id}\n    &lt;\/delete&gt;\n\n&lt;\/mapper&gt;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u94fe\u63a5\uff1aXXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93\u9002\u7528\u7248\u672c\uff1a2.4.1\uff1b2.4.0 XXL-JOB\u662f\u6211\u4eec\u6bd4\u8f83\u5e38\u7528\u7684\u5b9a\u65f6\u4efb\u52a1 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[45,3],"tags":[40],"class_list":["post-494","post","type-post","status-publish","format-standard","hentry","category-oracle","category-archive","tag-40"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93 - \u4ed6\u7684\u65e5\u5e38\u65f6\u5149<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0\u9002\u914doracle\u6570\u636e\u5e93\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93 - \u4ed6\u7684\u65e5\u5e38\u65f6\u5149\" \/>\n<meta property=\"og:description\" content=\"\u539f\u6587\u94fe\u63a5\uff1aXXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93\u9002\u7528\u7248\u672c\uff1a2.4.1\uff1b2.4.0 XXL-JOB\u662f\u6211\u4eec\u6bd4\u8f83\u5e38\u7528\u7684\u5b9a\u65f6\u4efb\u52a1 ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0\u9002\u914doracle\u6570\u636e\u5e93\/\" \/>\n<meta property=\"og:site_name\" content=\"\u4ed6\u7684\u65e5\u5e38\u65f6\u5149\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-11T06:39:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-11T06:39:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.17ci.com\/wp-content\/uploads\/2023\/12\/1702602409-logoko.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"xieshuoshuo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"xieshuoshuo\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/\"},\"author\":{\"name\":\"xieshuoshuo\",\"@id\":\"https:\\\/\\\/www.17ci.com\\\/#\\\/schema\\\/person\\\/2b6d2c8bdf88e9055aba3abf2f2852b8\"},\"headline\":\"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93\",\"datePublished\":\"2024-08-11T06:39:45+00:00\",\"dateModified\":\"2024-08-11T06:39:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/\"},\"wordCount\":49,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/#\\\/schema\\\/person\\\/2b6d2c8bdf88e9055aba3abf2f2852b8\"},\"keywords\":[\"\u6570\u636e\u5e93\"],\"articleSection\":[\"Oracle\",\"\u6570\u636e\u5e93\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/\",\"url\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/\",\"name\":\"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93 - \u4ed6\u7684\u65e5\u5e38\u65f6\u5149\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/#website\"},\"datePublished\":\"2024-08-11T06:39:45+00:00\",\"dateModified\":\"2024-08-11T06:39:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\\\/\\\/www.17ci.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.17ci.com\\\/#website\",\"url\":\"https:\\\/\\\/www.17ci.com\\\/\",\"name\":\"\u4ed6\u7684\u65e5\u5e38\u65f6\u5149\",\"description\":\"\u832b\u832b\u4eba\u751f\uff0c\u597d\u50cf\u8352\u91ce...\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/#\\\/schema\\\/person\\\/2b6d2c8bdf88e9055aba3abf2f2852b8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.17ci.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.17ci.com\\\/#\\\/schema\\\/person\\\/2b6d2c8bdf88e9055aba3abf2f2852b8\",\"name\":\"xieshuoshuo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/www.17ci.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/1702602405-avatar.jpg\",\"url\":\"https:\\\/\\\/www.17ci.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/1702602405-avatar.jpg\",\"contentUrl\":\"https:\\\/\\\/www.17ci.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/1702602405-avatar.jpg\",\"width\":1619,\"height\":1619,\"caption\":\"xieshuoshuo\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.17ci.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/1702602405-avatar.jpg\"},\"description\":\"\u8fd9\u662f\u4e00\u4e2a\u795e\u79d8\u4eba\u58eb\uff0c\u6216\u8bb8\u7528\u6307\u5b9a\u7684\u65b9\u5f0f\u53ef\u4ee5\u8054\u7cfb\u5230......\",\"sameAs\":[\"https:\\\/\\\/www.17ci.com\"],\"url\":\"https:\\\/\\\/www.17ci.com\\\/index.php\\\/author\\\/xieshuoshuo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93 - \u4ed6\u7684\u65e5\u5e38\u65f6\u5149","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0\u9002\u914doracle\u6570\u636e\u5e93\/","og_locale":"zh_CN","og_type":"article","og_title":"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93 - \u4ed6\u7684\u65e5\u5e38\u65f6\u5149","og_description":"\u539f\u6587\u94fe\u63a5\uff1aXXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93\u9002\u7528\u7248\u672c\uff1a2.4.1\uff1b2.4.0 XXL-JOB\u662f\u6211\u4eec\u6bd4\u8f83\u5e38\u7528\u7684\u5b9a\u65f6\u4efb\u52a1 ...","og_url":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0\u9002\u914doracle\u6570\u636e\u5e93\/","og_site_name":"\u4ed6\u7684\u65e5\u5e38\u65f6\u5149","article_published_time":"2024-08-11T06:39:45+00:00","article_modified_time":"2024-08-11T06:39:46+00:00","og_image":[{"width":400,"height":400,"url":"https:\/\/www.17ci.com\/wp-content\/uploads\/2023\/12\/1702602409-logoko.png","type":"image\/png"}],"author":"xieshuoshuo","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"xieshuoshuo","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/#article","isPartOf":{"@id":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/"},"author":{"name":"xieshuoshuo","@id":"https:\/\/www.17ci.com\/#\/schema\/person\/2b6d2c8bdf88e9055aba3abf2f2852b8"},"headline":"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93","datePublished":"2024-08-11T06:39:45+00:00","dateModified":"2024-08-11T06:39:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/"},"wordCount":49,"commentCount":0,"publisher":{"@id":"https:\/\/www.17ci.com\/#\/schema\/person\/2b6d2c8bdf88e9055aba3abf2f2852b8"},"keywords":["\u6570\u636e\u5e93"],"articleSection":["Oracle","\u6570\u636e\u5e93"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/","url":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/","name":"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93 - \u4ed6\u7684\u65e5\u5e38\u65f6\u5149","isPartOf":{"@id":"https:\/\/www.17ci.com\/#website"},"datePublished":"2024-08-11T06:39:45+00:00","dateModified":"2024-08-11T06:39:46+00:00","breadcrumb":{"@id":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.17ci.com\/index.php\/xxl-job-2-4-0%e9%80%82%e9%85%8doracle%e6%95%b0%e6%8d%ae%e5%ba%93\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.17ci.com\/"},{"@type":"ListItem","position":2,"name":"XXL-JOB-2.4.0\u9002\u914dOracle\u6570\u636e\u5e93"}]},{"@type":"WebSite","@id":"https:\/\/www.17ci.com\/#website","url":"https:\/\/www.17ci.com\/","name":"\u4ed6\u7684\u65e5\u5e38\u65f6\u5149","description":"\u832b\u832b\u4eba\u751f\uff0c\u597d\u50cf\u8352\u91ce...","publisher":{"@id":"https:\/\/www.17ci.com\/#\/schema\/person\/2b6d2c8bdf88e9055aba3abf2f2852b8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.17ci.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":["Person","Organization"],"@id":"https:\/\/www.17ci.com\/#\/schema\/person\/2b6d2c8bdf88e9055aba3abf2f2852b8","name":"xieshuoshuo","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.17ci.com\/wp-content\/uploads\/2023\/12\/1702602405-avatar.jpg","url":"https:\/\/www.17ci.com\/wp-content\/uploads\/2023\/12\/1702602405-avatar.jpg","contentUrl":"https:\/\/www.17ci.com\/wp-content\/uploads\/2023\/12\/1702602405-avatar.jpg","width":1619,"height":1619,"caption":"xieshuoshuo"},"logo":{"@id":"https:\/\/www.17ci.com\/wp-content\/uploads\/2023\/12\/1702602405-avatar.jpg"},"description":"\u8fd9\u662f\u4e00\u4e2a\u795e\u79d8\u4eba\u58eb\uff0c\u6216\u8bb8\u7528\u6307\u5b9a\u7684\u65b9\u5f0f\u53ef\u4ee5\u8054\u7cfb\u5230......","sameAs":["https:\/\/www.17ci.com"],"url":"https:\/\/www.17ci.com\/index.php\/author\/xieshuoshuo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/posts\/494","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/comments?post=494"}],"version-history":[{"count":3,"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/posts\/494\/revisions"}],"predecessor-version":[{"id":497,"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/posts\/494\/revisions\/497"}],"wp:attachment":[{"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/media?parent=494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/categories?post=494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.17ci.com\/index.php\/wp-json\/wp\/v2\/tags?post=494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}