1. 程式人生 > >Spring 項目中把 SQL 語句寫在 .sql 文件中

Spring 項目中把 SQL 語句寫在 .sql 文件中

Spring

我們在使用 JDBC 時, 如果把所有的 SQL 語句全寫在 Java 文件中, 由於 Java 不支持 Here Document, 多行字符串要麽用加號, 要麽用 Java 8 的 String.join() 方法來連接, 同時不能對 SQL 語句進行語法加亮, 所以這樣的 SQL 字符串閱讀性很差. 別說為何不用 Hibernate 之類的而不直接寫原始的 SQL 語句, 在操作復雜的系統時還是會用到 JdbcTemplate 吧.

所以我們希望能把 SQL 語句寫在單獨的 *.sql 文件裏, 這樣很多編輯器就能語法高亮顯示, 或在輸入時還能得到智能提示. 有種辦法是把 *.sql 用作為屬性文件, 那麽在其中定義多行的 SQL 語句時就得這樣

select.user=select id, firstname, lastname, address \
from users \
where id=?

加載後就能用 getProperty("select.user") 來引用相應的語句了. 屬性文件的換行與 Bash 一樣, 也是用 \, 但如此, 則 *.sql 並非一個純粹的 SQL 文件, 不能正確的進行語法加亮, 一旦寫上 SQL 的註釋 -- 就更是在添亂了.

所以我們的第二個方案是: 首先 *.sql 就該是一個真正的 SQL 文件, 而不是偽裝的屬性文件, 為了能在程序中引用每一條 SQL 語句, 我們該如何表示各自的 Key 呢? 這裏的靈感仍然是來自於 Linux Shell, 在 Linux Shell 中指定執行環境的用了特殊的註釋方式 #!

, 如

#!/bin/bash
#!/usr/bin/env python

閱讀全文 >>


Spring 項目中把 SQL 語句寫在 .sql 文件中