啟動 Spring 容器拋出 SAXParseException: 對實體 characterEncoding 的引用必須以 ';' 分隔符結尾,行號指向 DataSource 的 url 屬性。
<property name="url" value="jdbc:mysql://localhost:3306/supermarket?useUnicode=true&characterEncoding=UTF-8" />
XML 中 & 是實體引用起始符,解析器期望 &characterEncoding; 形式(以分號結尾)。但實際意圖是 URL 參數分隔符 &,需轉義為 &。
<property name="url" value="jdbc:mysql://localhost:3306/supermarket?useUnicode=true&characterEncoding=UTF-8" />
將參數分開配置,避免 URL 中出現 &:
<property name="url" value="jdbc:mysql://localhost:3306/supermarket" />
<property name="connectionProperties" value="useUnicode=true;characterEncoding=UTF-8" />
XML 屬性值中出現 & 必須轉義為 &,否則被視為實體引用導致解析錯誤。Spring 配置數據庫連接池時常見此問題。