java逐行读取文件内容执行sql语句_Java-将SQL语句存储在外部文件中

本文探讨了在Java中如何从外部文本文件读取SQL语句,以便支持团队能编辑而不需高级编辑器。目标是找到一个支持DML和DDL,允许参数化,可分组执行,并易于添加新语句的解决方案。内容提到了使用Spring的JDBCTemplate执行SQL,但不涉及Hibernate或Spring的IOC容器。
摘要由CSDN通过智能技术生成

我正在寻找在外部文件中存储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}

}

谁能推荐经过尝试和测试的解决方案?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值