2011-04-04 105 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> 

这只是让你看到它会是什么样子。有很多可能性和标签可帮助您构建任何可能需要的查询,因此我建议您花一些时间阅读用户指南以充分了解框架功能。