2020.09 問題總結(Oracle-->MySQL、Maven、JSP-->Thymeleaf、Druid)
資料庫建表
Oracle 轉 MySQL 問題
Oracle |
MySQL |
|
---|---|---|
可變字元 | varchar2 |
varchar |
自增id |
default SYS_GUID() | CREATE TRIGGER product_before_insert BEFORE INSERT ON product FOR EACH ROW BEGIN IF new.id is NULL THEN SET new.id = UUID(); END IF; END; |
字串轉timestamp |
to_timestamp('10-10-2018 10:10:00.000000', 'dd-mm-yyyy hh24:mi:ss.ff'), | TIMESTAMP('2018-12-25 10:18:00.000000') |
Maven模組化構建工程
The POM for com.food:food-manager-pojo:jar:0.0.1-SNAPSHOOT is missing, no dependency informat
搭建完所有子工程後,在Maven
父工程處,點選install
完成工程構建:
Thymeleaf 替換 JSP
超連結及靜態資源使用:
<!-- 超連結: -->
<a th:href="@{/pages/main}">
<!--靜態資源: -->
<img th:src="@{/img/center.jpg}">
重用模板片段:
提取模板片段作為單個頁面(不同於JSP
不提取也是可以的)
<html xmlns:th="http://www.thymeleaf.org">
<!-- 頁面頭部 -->
<header class="main-header" th:fragment="header">
...
</header>
</html>
<html xmlns:th="http://www.thymeleaf.org">
<!-- 導航側欄 -->
<aside class="main-sidebar" th:fragment="aside">
...
</aside>
</html>
需要使用模板片段的,
- 採用
th:insert
的方法
<!-- 頁面頭部 -->
<div th:insert="~{pages/header.html::header}"></div>
<!-- 頁面頭部 /-->
<!-- 導航側欄 -->
<div th:insert="~{pages/aside.html::aside}"></div>
- 還可以使用
th:replace
和th:include
屬性插入。
文字輸入
<span th:text="This is prototype text002.">This is prototype text.</span>
使用變數
<span th:text="${userName}">This is prototype text.</span>
迭代器
整合 Druid 資料來源
SQL監控和SQL防火牆無資訊原因及解決方法
原因:
沒有開啟Filter
(stat
、wall
)配置。
以下開啟方法將會開啟失敗:
datasource:
...
# 配置監控統計攔截的filters,去掉後監控介面sql無法統計,
#'wall'用於防火牆
filters: stat,wall
解決辦法:
druid:
filter:
stat:
enabled: true
wall:
enabled: true
開啟後在資料來源filter
類名中可以檢視到stat
、wall
的類名。(未開啟之前是為空的)
具體配置如下:
spring:
datasource:
# driver-class-name: com.mysql.cj.jdbc.Driver #
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://localhost:3306/tams_bg?serverTimezone=UTC
username: root
password: 123456
# 配置監控統計攔截的filters,去掉後監控介面sql無法統計,
#'wall'用於防火牆
filter:
stat:
enabled: true
wall:
enabled: true
# 配置StatFilter
web-stat-filter:
#預設為false,設定為true啟動
enabled: true
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
#配置StatViewServlet
stat-view-servlet:
url-pattern: "/druid/*"
#允許那些ip
login-username: tom001
login-password: 1234
#禁止那些ip
deny: 192.168.1.102
#是否可以重置
reset-enable: true
#啟用
enabled: true
#最大等待時間,配置獲取連線等待超時,時間單位都是毫秒ms
max-wait: 60000
#最大值
max-active: 20
#最小值
min-idle: 5
#初始化大小
initial-size: 5
#配置一個連線在池中最小生存的時間
min-evictable-idle-time-millis: 60000
#配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線
time-between-eviction-runs-millis: 300000
test-on-borrow: false
test-on-return: false
test-while-idle: true
pool-prepared-statements: true
#最大PSCache連線
max-pool-prepared-statement-per-connection-size: 20
use-global-data-source-stat: true
# 通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
mybatis:
type-aliases-package: com.justgo.tams_bg_pojo