[英]How to exequte query directly from java code using mybatis?
我需要在運行時執行由 java 代碼生成的查詢(不是靜態方法)。 我已經知道如何使用注解和靜態方法或使用 xml 映射器來構建動態查詢,但它不適合我的情況。
有沒有辦法直接從java代碼執行查詢?
Mybatis 已經有這個功能了,但是你必須使用適配器,如下所示。
創建一個適配器類;
public class SQLAdapter { String sql; public SQLAdapter(String sql) { this.sql = sql; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; } }
創建類 SQLAdapter 的 typeAlias
<typeAlias alias="sqladapter" type="com.zj.xxx.xxx.SQLAdapter" />
在需要直接執行 sql 的每個對象 xml 中放置選擇標記。
<select id="findRecords" parameterType="SQLAdapter" resultMap="xxxxxResultMap"> ${sql} </select>
像這樣調用這個選擇方法
String _sql = "select * from table where... order by... limit..."; xxxxx.findRecords(new SQLAdapter(_sql));
事情都已經做好了。 您不能再在 xml 文件中編寫復雜的 sql 語言。 祝你好運。
似乎最好的答案是在這種情況下使用 JDBC。
您可以使用 SQL 查詢作為文字參數來執行此操作:
<select id="findRecords" parameterType="string" resultMap="xxxxxResultMap">
${_parameter}
</select>
您只能通過 where 子句:
<select id="findRecords" parameterType="string" resultMap="xxxxxResultMap">
select * from records where ${_parameter}
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.