2011-04-04 70 views
1

在java中,我們有一個開源的XML文件生成sql嗎?例如,最簡單的情況是:java開源從xml生成sql查詢

<query> 
    <select>id</select> 
    <from>student</from> 
    <equal><column>name</column><val>john</val></equal> 
    <equal><column>age</column><val>23</val></equal> 
    <equal><column>registerDate</column><val>03/04/1990</val></equal> 
</query> 

然後,它會生成一個SQL:

select id 
from student 
where name = 'john' 
    and age = 23 
    and registerDate = '03/04/1990' 

當然,這是最簡單的情況下,當我們之間,加盟,這將是更爲複雜的。那麼我們有一個開源的來處理這個問題嗎?我不想像使用Hibernate一樣使用ORM,因爲它太過分了。

謝謝。

+0

Hibernate將obects序列化並將這些對象存儲在數據庫中。你不能比較hibernat和你想做什麼;-) – ITroubs 2011-04-04 19:51:47

+0

我不確定是否有。但是爲什麼你需要把查詢放在xml格式中。你可以簡單地把它放在一個SQL文件中,然後在你的DAO中調用它。 – ace 2011-04-05 05:59:11

+0

我正在尋找同樣的事情。請讓我知道如果你找到了一些圖書館,否則我們將不得不寫我們自己的(而且由於我們正在追求截止日期:(現在很困難) – 2013-08-22 07:23:41

回答

0

您是否必須使用這種XML格式?它以某種方式在內部定義?

如果您在XML上的目標純粹是使動態查詢更容易創建,那麼您可以嘗試MyBatis。它使用XML定義文件將SQL查詢組合在一起,並允許您根據參數動態更改查詢,而不會使用字符串連接組裝SQL查詢。您不會將每個元素定義爲XML標記,但只會將其中的一部分定義爲XML標記。請參閱MyBatis User Guide瞭解更多信息和代碼示例。以下是一個簡單的動態查詢快速看看:

<select id=」findActiveBlogWithTitleLike」 parameterType=」Blog」 resultType=」Blog」> 
    SELECT * FROM BLOG 
    WHERE state = ‘ACTIVE’ 
    <if test=」title != null」> 
     AND title like #{title} 
    </if> 
</select> 

這只是讓你看到它會是什麼樣子。有很多可能性和標籤可幫助您構建任何可能需要的查詢,因此我建議您花一些時間閱讀用戶指南以充分了解框架功能。