我正在寻找在外部文件中存储SQL语句的Java库/框架/技术。支持团队(包括DBA)应该能够(稍微)更改语句,以使它们保持同步,以防数据库模式更改或出于调整目的。
要求如下:
该文件必须可从Java应用程序读取,而且必须由支持团队进行编辑,而无需高级编辑器
理想情况下,文件应为纯文本格式,但XML也可以
允许存储/检索DML以及DDL语句
可以在以后的阶段添加新语句(应用程序足够灵活,可以选择并执行它们)
语句可以分组(并由应用程序分组执行)
语句应允许参数
笔记:
一旦检索到,这些语句将使用Spring的JDBCTemplate执行
不会使用Hibernate或Spring的IOC容器
到目前为止,我设法找到了以下Java库,这些库使用外部文件存储SQL语句。但是,我主要对存储感兴趣,而不是对隐藏所有JDBC“复杂性”的库感兴趣。
样本文件内容:
select *
from scott.emp
join scott.dept on (emp.deptno = dept.deptno)
where emp.ename =
样本文件内容:
type="com.sample.contact.Contact"/">
parameterClass="int" resultClass="contact"">
select CONTACTID as contactId,
FIRSTNAME as firstName,
LASTNAME as lastName from
ADMINISTRATOR.CONTACT where CONTACTID = #id#
INSERT INTO ADMINISTRATOR.CONTACT( CONTACTID,FIRSTNAME,LASTNAME)
VALUES(#contactId#,#firstName#,#lastName#);
update ADMINISTRATOR.CONTACT SET
FIRSTNAME=#firstName# ,
LASTNAME=#lastName#
where contactid=#contactId#
DELETE FROM ADMINISTRATOR.CONTACT WHERE CONTACTID=#contactId#
-- This is a comment
ADD_MESSAGE {
INSERT INTO MyMessage – another comment
(LoginName, Body, CreationDate)
– another comment
VALUES (?,?,?)
}
– Example of referring to a constant defined above.
FETCH_RECENT_MESSAGES {
SELECT
LoginName, Body, CreationDate
FROM MyMessage
ORDER BY Id DESC LIMIT ${num_messages_to_view}
}
谁能推荐经过尝试和测试的解决方案?