MyBatis 3 動態(tài)SQL-動態(tài) SQL 中的插入腳本語言

2022-04-11 10:57 更新

動態(tài) SQL 中的插入腳本語言

MyBatis 從 3.2 版本開始支持插入腳本語言,這允許你插入一種語言驅動,并基于這種語言來編寫動態(tài) SQL 查詢語句。

可以通過實現以下接口來插入一種語言:

public interface LanguageDriver {
  ParameterHandler createParameterHandler(MappedStatement mappedStatement, Object parameterObject, BoundSql boundSql);
  SqlSource createSqlSource(Configuration configuration, XNode script, Class<?> parameterType);
  SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType);
}

實現自定義語言驅動后,你就可以在 ?mybatis-config.xml? 文件中將它設置為默認語言:

<typeAliases>
  <typeAlias type="org.sample.MyLanguageDriver" alias="myLanguage"/>
</typeAliases>
<settings>
  <setting name="defaultScriptingLanguage" value="myLanguage"/>
</settings>

或者,你也可以使用 ?lang ?屬性為特定的語句指定語言:

<select id="selectBlog" lang="myLanguage">
  SELECT * FROM BLOG
</select>

或者,在你的 ?mapper ?接口上添加 ?@Lang? 注解:

public interface Mapper {
  @Lang(MyLanguageDriver.class)
  @Select("SELECT * FROM BLOG")
  List<Blog> selectBlog();
}

可以使用 ?Apache Velocity? 作為動態(tài)語言,更多細節(jié)請參考 ?MyBatis-Velocity? 項目。

你前面看到的所有 xml 標簽都由默認 MyBatis 語言提供,而它由語言驅動 ?org.apache.ibatis.scripting.xmltags.XmlLanguageDriver?(別名為 xml)所提供。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號