相关疑难解决方法(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万
查看次数

如何在CrudRepository的外部文件中存储@Query sql?

我使用的是spring带有CrudRepositoryS代表数据库连接.

现在我需要一个很长(几行)的SQL查询,我更喜欢在类路径中的文件中维护,而不是直接在代码中.

但我怎么能做到这一点?我的回购看起来如下:

@Query(value = "<my very long sql query>", nativeQuery = true) //how to inject file content?
@Modifying
@Transactional
public void executeSpecificSql();
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-jpa

13
推荐指数
2
解决办法
7419
查看次数

标签 统计

java ×2

jdbc ×1

spring ×1

spring-data ×1

spring-data-jpa ×1

sql ×1