问题标签 [ibatis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9279 浏览

java - 用 iBatis 映射父子关系

我有经典设置

我正在尝试使用 iBatis(版本 2.30 ......不要问)将其映射到通常的表设置上。

我的映射文件看起来像这样

一开始做通常sqlMap.queryForObject("loadParent", new Integer(42))的做法会导致 setter 内部出现 NullPointerException ,setChildren这显然是用 null 参数调用的(我的错)。修复 setter 一切正常,但是日志显示setChildren在运行单个 SQL 语句之前只调用了一次,仍然带有一个空参数,所以我想知道这里发生了什么。有人有任何线索吗?

0 投票
1 回答
521 浏览

java - iBatis 会在我的表上强制使用主键吗?

我正在做一个遗留项目。数据库设计不佳。我现在想更改数据库层。我想到的第一个想法是hibernate,但我休眠需要我的表上的主键。事实上我的一些表没有主键。所以我做了一个谷歌搜索,我找到了iBatis,听起来很不错。但我不知道iBatis是否在我的表上强制执行主键?

谢谢。

0 投票
1 回答
4248 浏览

java - iBATIS 将存储过程输出参数设置回 POJO

我正在使用 iBATIS 在 MSSQL Server 上调用存储过程,输入参数是放置到地图的 POJO 上的属性:

所有参数都正确设置为程序的输入,因此没有任何问题。但是其中一个参数是输出参数,我希望将其设置回 POJO,但"obj.new"=falseiBATIS 将一个额外的映射放置在映射中。这是显示基本思想的映射的简化版本:

调用该过程后,我将 Map 中的两个映射传递给 iBATIS:

  • "obj"=POJO
  • "obj.new"=False

现在我看到iBatis 文档“在执行存储过程时 – iBATIS 将为 OUTPUT 参数创建对象”,所以这是有道理的。但我的问题是,是否有办法指示 iBATIS 在调用过程后将布尔值放回 POJO?我宁愿不做额外的工作来从地图中获取价值并将其设置为我自己的 POJO。

// 乌伦

0 投票
2 回答
7218 浏览

sql - ibatis/Oracle - INSERT 中的 SELECT 查询失败

我正在尝试使用 iBatis 进行插入操作。

内部选择查询总是失败并返回 NULL。但是,如果我仅在内部查询中用实际值替换#field2#,它就可以正常工作。为什么 iBatis 不替换内部查询中的字段值?

有任何想法吗?

0 投票
3 回答
3943 浏览

configuration - 为什么 log4j 的行为不符合预期?

我有一个同事试图让 log4j 表现如下:

  • 登录到标准输出
  • 默认情况下,禁用大多数输出
  • 仅显示来自 java.sql.PrepareStatement 级别 debug 及以上的消息

他陷入了“级别”与“优先级”的关系。这是他的配置文件:

如图所示的更简单的配置(根日志级别 = 错误):

根日志级别的配置更改为调试(将查询替换为...)

他需要如何更改他的 log4j.xml 配置文件以使其行为符合他的预期?

0 投票
4 回答
4729 浏览

java - SQL删除语句(对于Derby)是否不允许NULL?

有谁知道为什么以下查询在 Derby 中失败?

我收到以下错误:

sql 是在基于我写入 iBatis ORM 层配置的 SQL 的 java 程序中生成的。准备好的语句如下:

如您所见,我想说的是,如果参数不为空,则根据参数测试列值

0 投票
2 回答
2007 浏览

java - Guice + Quartz + iBatis

我正在尝试将 Guice (Java)、Quartz 调度程序和 iBatis ( iBaGuice ) 连接在一起以执行以下操作:

  1. 使用启动命令行实用程序扫描程序main()
  2. 定期扫描目录(作为参数提供)以查找包含格式化输出(XML 或 YAML)的文件
  3. 当检测到文件时,解析并输出结果到数据库

问题:

  1. 我用这个例子来连接 Guice 和 Quartz。但是,我遗漏了一些我在评论中询问的重要细节,但这篇文章有些过时了,所以我也在这里引用它:
  1. 如何设置调度程序并不明显。我将在哪里以及如何连接Trigger(我可以使用Trigger#makeMinutelyTrigger)?
  2. 我真的只有一种类型的工作要执行,我知道 JobFactory#newJob 中的细节来自TriggerFiredBundle参数,但是我在哪里/如何连接它?我在哪里/如何创建或连接具体的工作?

PS通过创建和连接ScheduleProvider,我得到了一些进一步的信息。现在,我不知道如何在以下代码段中实际安排作业。似乎我的JobFactory#newJob方法从未被调用

}

0 投票
1 回答
591 浏览

java - 在同一个应用程序中使用 Hibernate 和 Ibatis

我需要编写一个新应用程序,但使用其他两个应用程序的一些数据访问逻辑。一个使用 Hibernate,另一个使用 iBATIS。我可以在同一个应用程序中同时使用 Hibernate 和 iBATIS 吗?如何?。

更新:让我重新提出我的问题。让我们忘记我将重新整理一些 DAO 或域类别。我需要在同一个应用程序中使用,Hibernate 和 iBATIS。我怎样才能做到这一点?谢谢你的时间...

0 投票
1 回答
1151 浏览

java - 使用 Spring 和 IBATIS 对特定查询使用不同的数据源

我需要根据查询类型更新应用程序以使用多个(即在这种情况下为两个)数据源。例如,使用 DB1 进行读操作,使用 DB2 进行写操作。我将如何处理这个?

0 投票
1 回答
5375 浏览

sybase - “无效的 SQL 语句或 JDBC 转义,未找到终止 '}'。” 使用 jTDS 和 Sybase

我正在通过 ibatis 调用存储过程。使用 jconn2.jar (5.5) 时,它有效,并且已经有效。当我将它换成 jtds jar (1.2.5) 时,我得到一个异常“无效的 SQL 语句或 JDBC 转义,未找到终止 '}'”。

为了提高透明度,我将 Spring 与 DBCP 一起使用。显然 jTDS 中对 SQL 代码的解析不被喜欢,在 jconn2 中被接受。这个项目早于我们很多人,而且我已经很多年没有使用 Sybase。

数据中的离群字符是“-”、“:”和“。”

我是否需要在存储过程调用语句中转义我的参数才能解决此问题?jconn2 是否有没有为 jTDS 设置的默认设置?

谢谢。