diff --git a/.obsidian/themes/Dracula for Obsidian/theme.css b/.obsidian/themes/Dracula for Obsidian/theme.css new file mode 100644 index 0000000..88bce16 --- /dev/null +++ b/.obsidian/themes/Dracula for Obsidian/theme.css @@ -0,0 +1,717 @@ +:root +{ + --font-size-normal: 19px; + --font-size-code: 16px; + --font-size-side-dock: 16px; + --font-size-side-dock-title: 18px; + --font-size-status-bar: 16px; + --font-size-h1: 24px; + --font-size-h2: 23px; + --font-size-h3: 22px; + --font-size-h4: 21px; + --font-size-h5: 20px; + --font-size-h6: 19px; + --font-family-editor: Avenir, Avenir Next, sans-serif; + --font-family-preview: Avenir, Avenir Next, sans-serif; +} + +.theme-light, +.theme-dark { + --background-primary: #282a36; + --background-primary-alt: #44475a; + --background-secondary: #44475a; + --background-secondary-alt: #282a36; + --background-accent: #f8f8f2; + --background-modifier-border: #f8f8f2; + --background-modifier-form-field: rgba(0, 0, 0, 0.2); + --background-modifier-form-field-highlighted: rgba(0, 0, 0, 0.5); + --background-modifier-box-shadow: rgba(0, 0, 0, 0.3); + --background-modifier-success: #50fa7b; /*no sure*/ + --background-modifier-error: #3d0000; /*no sure*/ + --background-modifier-error-rgb: 61, 0, 0; + --background-modifier-error-hover: #470000; + --background-modifier-cover: rgba(0, 0, 0, 0.6); + --text-accent: #ffb86c; + --text-accent-hover: #8be9fd; + --text-normal: #f8f8f2; + --text-muted: #f8f8f2; + --text-faint: #bd93f9; + --text-highlight-bg: #ff5555; + --text-error: #ff79c6; + --text-error-hover: #ff79c6; + --text-selection: #6272a4; /* Chromium precess this color with alpha channel */ + --text-on-accent: #bd93f9; + --interactive-normal: #ffb86c; + --interactive-hover: #ff5555; + --interactive-accent: #ffb86c; + --interactive-accent-rgb: 123, 108, 217; + --interactive-accent-hover: #ff5555; + --scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2); + --scrollbar-bg: rgba(255, 255, 255, 0.05); + --scrollbar-thumb-bg: rgba(255, 255, 255, 0.1); + + --text-title-h1: #ff79c6; + --text-title-h2: #bd93f9; + --text-title-h3: #ff5555; + --text-title-h4: #ffb86c; + --text-title-h5: #50fa7b; + --text-title-h6: #8be9fd; + --inline-code: #bd93f9; + --code-block: #8be9fd; + --pre-code: #44475a; + --blockquote-border: #ffb86c; + --vim-cursor: #ff5555; + --border-color: #2b2727; /*also like transparent*/ +} + +/*-------------------------------------*/ +/* Search the following lines */ +/* to jump to specific section */ +/*-------------------------------------*/ +/* resize-handle and borders */ +/* tags */ +/* link */ +/* Cursor */ +/* basic format in EDITOR and PREVIEW */ +/* Headings - EDITOR and PREVIEW */ +/* Code block in Preview */ +/* Code block in Editor */ +/* Brackets */ +/* Blockquote */ +/* table */ +/* Checkbox */ +/* html in editor */ +/* popover */ +/* Side panel */ +/* internal embedded link in preview */ +/* graph view */ +/* settings */ +/* Hide side bar */ +/* width of content */ +/* at a rule line before ul list * +/* Hide Scrollbar (recommend for mac) */ +/*-------------------------------------*/ + +/***************************************/ +/* resize-handle and borders */ +/***************************************/ + +/*vertical resize-handle*/ +.workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, +.workspace-split.mod-left-split > .workspace-leaf-resize-handle, +.workspace-split.mod-right-split > .workspace-leaf-resize-handle{ + width: 1px !important; + background-color: var(--border-color); +} + +/*horizontal resize-handle*/ +.workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle{ + height: 1px !important; + background-color: var(--border-color); +} + +/*workspace ribbon when collapsed*/ +.workspace-ribbon.is-collapsed { + background-color: var(--background-primary-alt); +} + +/*the vertical split*/ +.workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content, +.workspace-split.mod-vertical > .workspace-split, +.workspace-split.mod-vertical > .workspace-leaf, +.workspace-tabs{ + padding-right: 0px; +} + +/*status-bar*/ +.status-bar{ + font-size: var(--font-size-status-bar); + background-color: var(--background-secondary-alt); + border-top: 0px; +} + +.document-search-container{ + border-top: 0px; + border-right: 0px; + z-index: inherit; +} + +.workspace-ribbon.mod-left.is-collapsed{ + border-right: 1px solid var(--border-color); +} + +.workspace-ribbon.mod-right.is-collapsed{ + border-left: 1px solid var(--border-color); +} + +/*************************************/ +/* tags */ +/*************************************/ + +/* Tag hover in preview */ +a.tag:hover { + color: var(--text-accent) !important; +} + +/* Tag Color in editor and preview*/ +.cm-hashtag, a.tag { + color: var(--text-accent-hover) !important; + text-decoration: none !important; + font-style: normal !important; +} + +/*********************************/ +/* link */ +/*********************************/ + +/* link */ +a, +.internal-link, +.cm-hmd-internal-link, +.cm-link, +.cm-formatting-link, +.cm-url { + text-decoration: none !important; +} + +/* the url string in editor */ +.cm-s-obsidian span.cm-string{ + color: var(--text-accent-hover) !important; +} + +/* make external links italics to differentiate */ +a:not(.internal-link) { + font-style: italic; +} + +/*footnote*/ +.cm-s-obsidian pre.HyperMD-footnote span.cm-hmd-footnote, +.cm-s-obsidian span.cm-footref { + color: var(--text-accent) !important; +} + +/***************************************/ +/* Cursor */ +/***************************************/ + +/* Cursor color and opacity */ + +.cm-fat-cursor .CodeMirror-cursor, .cm-animate-fat-cursor + { + width: 0.5em; + background: var(--vim-cursor); + opacity: 60% !important; +} + +/**************************************/ +/* basic format in EDITOR and PREVIEW */ +/**************************************/ + +/* font for everything outside of editor/preview panes */ +.app-container { + font-family: var(--font-family-preview); +} + +/* set the text selection color for preview mode */ +::selection { + background-color: var(--text-selection); +} + +/* normal text outside of headings and code of editor */ +.cm-s-obsidian, .mod-single-child .cm-s-obsidian { + font-family: var(--font-family-editor); + font-size: var(--font-size-normal); +} + +/* normal text outside of headings and code of preview */ +.markdown-preview-view, .mod-single-child .markdown-preview-view { + font-family: var(--font-family-editor); + font-size: var(--font-size-normal); + padding-top: 0px; + padding-left: 2% !important; + padding-right: 1% !important; +} + +/* bold in preview and editor */ +strong, .cm-strong { + font-weight: 600; + color: #50fa7b; +} + +/* emphasis in preview and editor */ +em, .cm-em { + color: var(--text-muted); + font-style: italic; +} + +/* strikethrough in preview and editor */ +s, .cm-strikethrough { + color: var(--text-muted); +} + +/* list in editor */ +.cm-s-obsidian span.cm-formatting-list { + color: var(--text-normal) !important; +} + +/* horizontal line in preview */ +.markdown-preview-view hr { + background-color: var(--text-faint) !important; +} + +/* embedded images */ +img:not(.emoji) { + display: block; + margin-left: auto; + margin-right: auto; +} +/* img hover zoom out img*/ +img:hover { + transform: scale(1.04); + transition: transform 0.25s ease-in-out 0s; +} + +.community-theme img:hover{ + transform: none; +} + +/*********************************/ +/* Headings - EDITOR and PREVIEW */ +/*********************************/ + + +/* headings for editor and preview */ +.cm-header-1, .markdown-preview-view h1 +{ + font-family: var(--font-family-editor); + font-weight: 500; + font-size: var(--font-size-h1); + color: var(--text-title-h1); +} + +.cm-header-2, .markdown-preview-view h2 +{ + font-family: var(--font-family-editor); + font-weight: 500; + font-size: var(--font-size-h2); + color: var(--text-title-h2); +} + +.cm-header-3, .markdown-preview-view h3 +{ + font-family: var(--font-family-editor); + font-weight: 500; + font-size: var(--font-size-h3); + color: var(--text-title-h3); +} + +.cm-header-4, .markdown-preview-view h4 +{ + font-family: var(--font-family-editor); + font-weight: 500; + font-size: var(--font-size-h4); + color: var(--text-title-h4); +} + +.cm-header-5, .markdown-preview-view h5 +{ + font-family: var(--font-family-editor); + font-weight: 500; + font-size: var(--font-size-h5); + color: var(--text-title-h5); +} + +.cm-header-6, .markdown-preview-view h6 +{ + font-family: var(--font-family-editor); + font-weight: 500; + font-size: var(--font-size-h6); + color: var(--text-title-h6); +} + +/***************************************/ +/* Code block in Preview */ +/***************************************/ + +/* code blocks in preview */ +pre code { + font-family: monaco !important; + font-size: var(--font-size-code) !important; + padding: 6px !important; + line-height: normal; + display: block; + color: var(--code-block) !important; +} + +/* padding of code blocks in preview */ +.markdown-preview-view pre { + padding: 0px !important; +} + +/* font-size of in-line block for preview */ +.markdown-preview-view code +{ + font-size: var(--font-size-code); +} + + +/* remove the shadow that typically affect light mode */ +.theme-dark code[class*="language-"], +.theme-dark pre[class*="language-"], +.theme-light code[class*="language-"], +.theme-light pre[class*="language-"] +{ + text-shadow: none !important; + color: var(--text-faint) !important; + background-color: var(--pre-code); +} + +/***************************************/ +/* Brackets */ +/***************************************/ + +.cm-s-obsidian span.cm-formatting-link { + color: var(--text-accent) !important; +} + +/***************************************/ +/* Blockquote */ +/***************************************/ + +/* for editor */ +.cm-quote { + color: var(--text-normal) !important; + font-style: italic; +} + +/* for preview */ +.markdown-preview-view blockquote { + background-color: var(--pre-code); + border: 0px solid; + border-color: var(--blockquote-border) !important; + border-left-width: 4px !important; + border-radius: 0 8px 8px 0; + line-height: 1.5em; + margin: 30px 0px; + font-style: italic; +} + +/***************************************/ +/* table */ +/***************************************/ + +th { + font-weight: 800 !important; +} + +.markdown-preview-view th { + font-weight: 800; + background-color: var(--background-secondary) !important; +} + +thead { + border-bottom: 3px solid var(--background-modifier-border); +} + +.table { + padding: 4px; + line-height: normal; + display: block; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +/***************************************/ +/* Checkbox */ +/***************************************/ + +.markdown-preview-view .task-list-item-checkbox:checked::before { + content: '✓'; + position: absolute; + color: var(--text-accent); + font-size:1em; + line-height: 1.25em; + width:1.2em; + text-align:center; + text-shadow: 0 0 0.1em var(--text-accent); +} + +.markdown-preview-view .task-list-item-checkbox { + -webkit-appearance: none; + top: 0.2em !important; + right: 4px; + box-sizing: border-box; + border: 1px solid var(--text-muted); + position: relative; + width: 1.25em; + height: 1.25em; + margin: 0; + box-shadow: 0 0 0.1em var(--text-muted); +} + +.checkbox-container { + background-color: var(--background-primary); +} + + +/***************************************/ +/* popover */ +/***************************************/ + +.popover{ + border: 1px solid var(--border-color); + background-color: var(--background-secondary); +} + + +/***************************************/ +/* Side panel */ +/***************************************/ + +/* search result in backlink or file search */ +.search-result-file-title { + font-size: 15px ; +} + +.search-result-file-matches, .search-empty-state { + font-size: var(--font-size-side-dock); +} + +/*decrease the spacing between result items*/ +.search-result-file-title, +.search-result-file-match { + padding: 0px 10px; +} + +.nav-file-title, .nav-folder-title { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +/*backlink pane*/ +.workspace-leaf-content[data-type="backlink"] .view-content{ + background-color: var(--background-secondary); +} + +.workspace-leaf-content[data-type="tag"] .tag-pane-tag-count, +.workspace-leaf-content[data-type="tag"] .tag-pane-tag-text { + font-size: var(--font-size-side-dock); +} + +.workspace-leaf-content[data-type="backlink"] .search-result-file-matches { + font-size: var(--font-size-side-dock); +} +/***************************************/ +/* internal embedded link in preview */ +/***************************************/ + +/* Naked Embeds */ +.markdown-embed-title { display: none; } +.markdown-preview-view .markdown-embed-content>:first-child { margin-top: 0; } +.markdown-preview-view .markdown-embed-content>:last-child { margin-bottom: 0; } +/*remove the following two line, you will get border and scroll*/ +.markdown-preview-view .markdown-embed { border:none; padding:0; margin:0; } +.markdown-preview-view .markdown-embed-content +{ + max-height: unset; + background-color: var(--background-secondary); +} + +/* the link on the top right corner*/ +.markdown-embed-link { +color: var(--text-faint) !important; +} + +.markdown-embed-link:hover { +color: var(--text-accent) !important; +} + +/***************************************/ +/* graph view */ +/***************************************/ +.graph-view.color-circle, +.graph-view.color-fill-highlight, +.graph-view.color-line-highlight +{ + color: var(--text-accent) !important; +} + +.graph-view.color-text +{ + color: var(--text-normal) !important; +} + +.graph-view.color-line { + color: #6272a4; +} + +.graph-view.color-fill{ + color: var(--text-muted); +} + +.workspace-leaf-content[data-type = "graph"] .view-content{ + background-color: var(--background-primary); +} + +/***************************************/ +/* settings */ +/***************************************/ + +.modal.mod-settings button:not(.mod-cta):hover { + background-color: var(--interactive-accent-hover); +} + +/***************************************/ +/* Hide side bar */ +/***************************************/ + +.workspace-ribbon:not(:hover) .workspace-ribbon-collapse-btn, +.workspace-ribbon:not(:hover) .side-dock-actions, +.workspace-ribbon:not(:hover) .side-dock-settings { + display:none; + transition: all 300ms ease-in-out;} +.workspace-ribbon:not(:hover) { + width: 0px; + transition: all 300ms ease-in-out;} + +.workspace-split.mod-left-split {margin-left: 0px;} +.workspace-split.mod-right-split {margin-right: 0px;} + +/***************************************/ +/* width of content */ +/***************************************/ + +.markdown-source-view.is-readable-line-width .CodeMirror { + max-width: 900px; + margin-left: auto; + margin-right: auto; +} + +.markdown-preview-view.is-readable-line-width .markdown-preview-section { + max-width: 900px; + margin-left: 30px; + margin-right: 30px; +} + + +/* header */ + +.theme-dark .view-header { + background-color: var(--background-primary) !important; + border-top: 1px solid var(--border-color) !important; + border-bottom: 1px solid var(--border-color) !important; +} + +.theme-dark .view-header-title-container:after { + background: linear-gradient(to bottom, transparent, var(--background-primary)) !important; +} + +.theme-dark .workspace-leaf.mod-active .view-header { + background-color: var(--background-secondary-alt) !important; + border-top: 0px !important; + border-bottom: 3px solid var(--interactive-accent) !important; +} + +.workspace-leaf.mod-active .view-header-title-container:after { + background: linear-gradient(to bottom, transparent, var(--background-secondary-alt)) !important; +} + +.workspace-leaf.mod-active .view-header-title, +.workspace-leaf.mod-active .view-header-icon +{ + color: var(--background-modifier-border); +} + +.view-header-title, .view-header-icon, .view-action{ + color: var(--text-faint); +} +.view-header-title +{ + font-size: 20px; +} + +/***************************************/ +/* at a rule line before ul list */ +/***************************************/ + +ul ul { position: relative; } +ul ul::before { + content:''; + border-left: 1px solid var(--border-color); + position: absolute; +} +ul ul::before { left: -1em; top: 0; bottom: 0; } + +/* rule line when there are checkboxes*/ +ul .task-list-item ul::before {left: 0.15em !important} + +/***************************************/ +/* Code block in Editor */ +/***************************************/ + +/* in-line block for editor */ +.cm-s-obsidian span.cm-inline-code, +.cm-s-obsidian span.cm-inline-code.cm-hmd-indented-code, +.cm-s-obsidian span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code) +{ + background-color: var(--pre-code-bg); + color: var(--inline-code) !important; + bottom: 0px !important; +} + + /* Editor CodeBlock TEXT Appearance */ +.cm-s-obsidian pre.HyperMD-codeblock { + font-family: monaco !important; + font-size: var(--font-size-code) !important; + padding: 1px !important; + display: block; + color: var(--code-block) !important; + font-weight: 500; + text-indent: 0px !important; +} + +/*remove the border of codeblock in editor */ +.HyperMD-codeblock-bg{ + border: 0px !important; +} + +/*an active line highlight in vim normal mode +.cm-fat-cursor .CodeMirror-activeline .CodeMirror-linebackground{ + background-color: var(--text-selection) !important; +} */ + +/* in-line block for preview */ +code{ + color: var(--inline-code) !important; + bottom: 0px !important; +} + +/* graph css */ +.theme-dark .graph-view.color-arrow { + color: #50fa7b; + } + + .theme-dark .graph-view.color-fill-tag { + color: #ffb86c; + } + + .theme-dark .graph-view.color-fill-attachment { + color: #ff5555; + } + + .theme-dark .graph-view.color-fill-unresolved { + color: #6272a4; + } + + .search-result-collapse-indicator { + position: absolute; + left: 0; + top: -3px; + color: var(--text-faint); + transition: transform 100ms ease-in-out; + padding: 0px !important; + } diff --git a/Pasted image 20230824061227.png b/Pasted image 20230824061227.png new file mode 100644 index 0000000..c94195a Binary files /dev/null and b/Pasted image 20230824061227.png differ diff --git a/work常用/Freetds.md b/work常用/Freetds.md new file mode 100644 index 0000000..424f330 --- /dev/null +++ b/work常用/Freetds.md @@ -0,0 +1,7 @@ +用于linux 及类unix下连接sqlserver +```shell +# 查看freetds状态 +tsql -C +# 连接数据库 +tsql -H 172.16.1.2 -p 1433 -U sa -P atdPriME@Gy9# -D credit +``` \ No newline at end of file diff --git a/work常用/Oracle常用.md b/work常用/Oracle常用.md index 73bb1e6..726692e 100644 --- a/work常用/Oracle常用.md +++ b/work常用/Oracle常用.md @@ -242,4 +242,32 @@ select 'exec dbms_stats.unlock_table_stats("'||user||'","'||table_name||'");' fr ## 2.7 创建唯一索引 ```sql create unique index gd_person_edu_uniq on GD_PERSON_EDU(PERSON_ID,EDU_,EDU_CODE,EDU_TYPE,EDU_TYPE_CODE); +``` + +## 2.8 查询表约束 +```sql +-- 查询约束 +select * from user_constraints where table_name='EA_DIVISION_CATEGORY_INFO' +-- 删除约束 +alter table EA_DIVISION_CATEGORY_INFO drop constraints SYS_C00682807 +``` + +## 2.9 查询锁表 + +```sql +select object_name, machine, s.sid, s.serial# + from v$locked_object l, dba_objects o, v$session s + where l.object_id  =  o.object_id + and l.session_id = s.sid; + +----- 删除锁 +alter system kill session 'SID,serial#'; +alter system kill session '909,10021'; +``` + +## 2.10 查看执行历史 + +```sql +-- 根据表名查询执行历史 +select * from v$sqlarea a where a.SQL_TEXT like '%JTXY_CREDIT_RECORDS%' order by a.LAST_ACTIVE_TIME desc; ``` \ No newline at end of file diff --git a/work常用/SqlServer常用.md b/work常用/SqlServer常用.md index 618924a..740fc85 100644 --- a/work常用/SqlServer常用.md +++ b/work常用/SqlServer常用.md @@ -107,6 +107,8 @@ dt_whocheckedout_u ## 3.5 查看字符集 ```sql SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage'); + +select SERVERPROPERTY('Sqlcharsetname'); ``` | 字符集编码 | 类型 | | ---------- | --------------- | diff --git a/work常用/问题排查.md b/work常用/问题排查.md new file mode 100644 index 0000000..1661458 --- /dev/null +++ b/work常用/问题排查.md @@ -0,0 +1,2 @@ +## 一、fullGC +![[Pasted image 20230824061227.png]] \ No newline at end of file diff --git a/工作日志/ATD/环境/项目地址.md b/工作日志/ATD/环境/项目地址.md index 49d10af..028e14d 100644 --- a/工作日志/ATD/环境/项目地址.md +++ b/工作日志/ATD/环境/项目地址.md @@ -68,4 +68,9 @@ http://220.165.247.94:9580/home admin/atd#mlgs2023 kkFileview [kkFileView演示首页](http://172.16.3.71:8013/) -基投 http://172.16.2.167/saasjtWeb \ No newline at end of file +基投 http://172.16.2.167/saasjtWeb + +国道219设计图 +https://elvu02.axshare.com/#id=klsy48&p=%E4%BA%BA%E5%91%98%E4%BF%A1%E6%81%AF%E7%99%BB%E8%AE%B0&g=1 + +.!hz93XBsY \ No newline at end of file diff --git a/开发计划/tiny-datahub/开发计划.md b/开发计划/tiny-datahub/开发计划.md deleted file mode 100644 index 35ea55d..0000000 --- a/开发计划/tiny-datahub/开发计划.md +++ /dev/null @@ -1,18 +0,0 @@ -## 一、第一阶段 -### 1. 视图、存储过程逆向分析并构建关系图 -已完成 -### 2. 定时构建 -1. 通过apscheduler实现定时任务 (暂不支持动态添加定时任务) -2. stopwatch 实现(完成) - -## 二、第二阶段 -### 1. 数据库版本差异扫描及版本管理 -### 2. 数据比对工具 -### 3. 数据探查 -### 4. 表结构生成(支持不同类型数据库互转) -### 5. FastApi 开发http查询接口 - -## 三、第三阶段 -### 1. 元查询、展示 -### 2. 字段级别血缘关系分析实现 -### 3. 字段级别、表级别血缘关系展示 \ No newline at end of file diff --git a/问题排查/开发/Spring中锁失效.md b/问题排查/开发/Spring中锁失效.md new file mode 100644 index 0000000..cfa8de4 --- /dev/null +++ b/问题排查/开发/Spring中锁失效.md @@ -0,0 +1,41 @@ +# 一、在service层事务中使用锁(失效) +```java +//伪代码 +@Transactional +public sync Object test(){ + xxx() +} +``` + +上述代码执行过程: +1. spring AOP 生成代理对象,开启事务 +2. 线程1获得锁 +3. 线程1执行xxx方法 +4. 线程1释放锁 +5. 事务提交 + +问题点:线程1释放锁之后,事务提交之前。由线程2获取锁执行,此时线程2查到的数据是脏数据,因此出现脏写。 + +## 解决: +### 1. 将加锁过程上移至controller层 +原理是将事务包在锁内 +```java +private final Lock lock = new ReentrantLock(false); + +public ServiceResult save(@RequestBody CreditRecordsParam params) { + try { + if (lock.tryLock(5, TimeUnit.SECONDS)) { + return creditRecordsService.save(params); + } else { + return ServiceResult.fail("锁获取失败,请重新提交"); + } + } catch (Exception e) { + return ServiceResult.fail(e.getMessage()); + } finally { + lock.unlock(); + } + } +``` + +### 2. 在service层新建无事务方法 +原理和1相同,使用无事务方法加锁后调用有事务方法。 \ No newline at end of file