【问题标题】:How can I use ormlite to escape my insert?如何使用 ormlite 来逃避我的插入?
【发布时间】:2014-07-30 23:52:53
【问题描述】:

我已将 ormlite 集成到我正在开发的应用程序中。现在,我正在尝试构建功能,以便轻松地从自动将数据插入数据库切换到将插入语句的等效集合输出到文件以供以后使用。数据不是用户输入,但仍需要适当转义以处理撇号等基本问题。

我已经烧毁的想法:

  • Dao.create() 直接写入数据库,所以这是不行的。
  • QueryBuilder 无法处理插入。
  • JdbcDatabaseConnection.compileStatement() 可能有效,但所需的设置量不合适。
  • 使用java.sql.PreparedStatement 具有足够合理的接口(如果toString() 像我希望的那样返回SQL),但它与ormlite 的连接类型不兼容。

这应该很容易,如果是这样,我找不到合适的方法调用组合来实现它。

【问题讨论】:

    标签: ormlite sql-insert


    【解决方案1】:

    现在我正在尝试构建功能,以便轻松地从自动将数据插入数据库切换到将插入语句的等效集合输出到文件以供以后使用。

    有趣。因此,一种技巧是使用MappedCreate 类。 MappedCreate.build(...) 方法采用 DatabaseTypeTableInfo,可从 dao.getTableInfo() 获得。

    mappedCreate.toString() 暴露了生成的 INSERT 语句(带有前缀),这可能会有所帮助,但您仍然需要将 ? 参数转换为带有转义引号的实际值。您必须在自己的代码中执行此操作。

    希望这会有所帮助。

    【讨论】:

    • 转义值是我希望避免编写的那种代码。你是说我还需要这样做吗?
    • 不幸的是,如果没有 @phasetwenty,我看不出你将如何在文本文件中插入语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多