MyBatis Xml對映檔案之字串替換

2021-10-01 04:30:54 字數 936 閱讀 3711

預設情況下,使用 #{} 格式的語法會導致 mybatis 建立 preparedstatement 引數佔位符並安全地設定引數(就像使用 ? 一樣)。 這樣做更安全,更迅速,通常也是首選做法,不過有時你就是想直接在 sql 語句中插入乙個不轉義的字串。 比如,像 order by,你可以這樣來使用:

order by $
這裡 mybatis 不會修改或轉義字串。

當 sql 語句中的元資料(如表名或列名)是動態生成的時候,字串替換將會非常有用。

舉個例子,如果你想通過任何一列從表中 select 資料時,不需要像下面這樣寫:

@select("select * from user where id = #")

user findbyid(@param("id") long id);

@select("select * from user where name = #")

user findbyname(@param("name") string name);

@select("select * from user where email = #")

user findbyemail(@param("email") string email);

// and more "findby***" method

可以只寫這樣乙個方法:

@select("select * from user where $ = #")

user findbycolumn(@param("column") string column, @param("value") string value);

其中 $ 會被直接替換,而 # 會被使用 ? 預處理。 因此你就可以像下面這樣來達到上述功能:

這個想法也同樣適用於用來替換表名的情況。

mybatis xml對映檔案 select

查詢語句是 mybatis 中最常用的元素之一 光能把資料存到資料庫中價值並不大,還要能重新取出來才有用,多數應用也都是查詢比修改要頻繁。mybatis 的基本原則之一是 在每個插入 更新或刪除操作之間,通常會執行多個查詢操作。因此,mybatis 在查詢和結果對映做了相當多的改進。乙個簡單查詢的 ...

linux之檔案對映mmap munmap

1.檔案對映,能夠將硬碟對映到程序的位址,這樣可以向操作記憶體一樣來操作檔案,而且效率高 但是有一定的限制,檔案的長度必須大於等於對映的長度 對映的offset必須是頁 page 的整數倍 注意 對映不會增長檔案的長度 對映部分的內容應該是檔案本來就應該有的內容 2 檔案對映主要使用到兩個函式 分別...

MyBatis之sql對映檔案

mybatis的強大之處就在於它的sql對映檔案,下面介紹sql對映檔案的幾個頂級元素配置 2 cache 配置給定的命名空間的快取 3 cache ref 從其他冥冥空間的引用快取配置 4 resultmap 用來描述資料庫結果集和物件的對應關係 5 sql 可以重用的sql塊,也可以被其他語句引...