相关疑难解决方法(0)

Java - 将SQL语句存储在外部文件中

我正在寻找一种在外部文件中存储SQL语句的Java库/框架/技术.支持团队(包括DBA)应该能够(略微)更改语句,以便在数据库架构更改或调整目的时保持它们同步.

以下是要求:

  • 该文件必须可从Java应用程序读取,但也必须由支持团队编辑,而无需花哨的编辑器
  • 理想情况下,文件应采用纯文本格式,但XML也可以
  • 允许存储/检索DML以及DDL语句
  • 可以在稍后阶段添加新语句(应用程序足够灵活,可以选择并执行它们)
  • 语句可以分组(并由应用程序作为一个组执行)
  • 声明应该允许参数

笔记:

  • 一旦检索到,语句将使用Spring的JDBCTemplate执行
  • 不会使用Hibernate或Spring的IOC容器

到目前为止,我设法找到以下Java库,它们使用外部文件来存储SQL语句.但是,我主要对存储而不是隐藏所有JDBC"复杂性"的库感兴趣.

  • Axamol SQL库

    示例文件内容:

    <s:query name="get_emp">
      <s:param name="name" type="string"/>
      <s:sql databases="oracle">
        select    *
        from      scott.emp
                  join scott.dept on (emp.deptno = dept.deptno)
        where     emp.ename = <s:bind param="name"/>
      </s:sql>
    </s:query>
    
    Run Code Online (Sandbox Code Playgroud)
  • iBATIS的

    示例文件内容:

    <sqlMap namespace="Contact"">
        <typeAlias alias="contact"
            type="com.sample.contact.Contact"/">
        <select id="getContact"
            parameterClass="int" resultClass="contact"">
                select CONTACTID as contactId,
                       FIRSTNAME as firstName,
                       LASTNAME as lastName from
                       ADMINISTRATOR.CONTACT where CONTACTID = #id#
        </select>
    </sqlMap>
    <insert id="insertContact" parameterClass="contact">
    INSERT INTO ADMINISTRATOR.CONTACT( CONTACTID,FIRSTNAME,LASTNAME)
            VALUES(#contactId#,#firstName#,#lastName#);
     </insert>
    <update id="updateContact" parameterClass="contact"> …
    Run Code Online (Sandbox Code Playgroud)

java sql jdbc

46
推荐指数
6
解决办法
5万
查看次数

通常,在应用程序中放置SQL查询的位置?

在应用程序中放置SQL查询的最佳位置是什么?

查询可能很大,需要格式化.

使用StringBuilder附加查询看起来非常混乱.

将它们存储在文件中并在每次发出请求时读取它们 - 看起来都是个坏主意.(但我认为从文件读取可以放在静态块中)

java sql

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

sql ×2

jdbc ×1