问题标签 [mybatis]

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 投票
1 回答
1303 浏览

java - MyBatis - 如何从 Swing 应用程序设置数据库属性?

假设我有 Swing 应用程序并且我正在使用 mybatis:

MyBatisSqlSessionFactory 看起来像这样:

如何从 Swing 应用程序中获取变量到 sqlfactory 的配置中?

感谢您的任何建议。

0 投票
2 回答
10061 浏览

spring - mybatis-spring 交易问题

我在 mybatis 中使用 CMT Spring 事务时遇到问题,我有一个使用 2 MapperFactoryBean 插入记录的类。

插入记录时出现 FOREIGN KEY 约束异常;似乎两者都在不同的会话中运行,第二个找不到新插入的 id。

在第二条记录的外键中传递 null 时;没有抛出异常,但也没有提交事务。

如果抛出任何异常,回滚工作正常。

这是我的配置

代码片段

感谢期待

这是堆栈跟踪

这是调试日志

0 投票
2 回答
12461 浏览

mybatis - 我的巴蒂斯!将多个参数传递给 Mapper DAO

我正在尝试向 DAO 实现中定义的 Mapper 函数发送多个参数,但在参数不属于任何类的情况下无法发送超过 1 个参数。我的意思是如何修改以下代码-

在 DAO 实现中

我想发送 a 和 b 来查询 getNames。

提前致谢。

0 投票
1 回答
9288 浏览

ibatis - MyBatis中通过参数设置FROM子句

我无法在文档中看到任何与我的问题相关的内容,并且在部署它后,我的应用程序无法正常工作(稍后会详细介绍)。我正在尝试做类似的事情

在 MyBatis 中。我有许多具有共享列的查找表,因此视图级别的用户确定最终使用哪个查找表。我尝试执行 getLookupRows 时遇到的错误是

我的映射器界面如下:

所以我们知道我正在尝试将一个字符串传递给这个查询,没什么特别的。我有专门的专栏,因为那将是我的下一个任务。实际上,每个查找表的列之一是唯一的,因此我必须调用适当的 specificColumn,但如果我可以让表参数和 FROM 子句正常工作,我会非常高兴。

0 投票
1 回答
9664 浏览

java - MyBatis - 与 MySQL 的连接随机断开

*更新:我发现了一个打开后没有关闭会话的方法。我想这可能是原因。稍后会测试并报告。*

我们将 MyBatis 与 GWT Java Web 应用程序一起使用。问题是有时在尝试使用 MyBatis 读取或写入数据库时​​会发生异常。可能是什么原因?任何后续查询都将起作用。似乎连接已超时,需要刷新。这种情况有时会在一天中发生,我们看不到任何模式。我们尝试了不同的配置无济于事。

MyBatis 配置文件:

更新 1 异常在不同的“DAO”中引发,它不特定于单个方法/调用。一般的方法可能如下所示:

会话工厂类包括:

0 投票
1 回答
9858 浏览

mybatis - MyBatis 多结果集

我目前正在将代码从 iBatis 2 迁移到 MyBatis 3。我有一个函数可以返回多个结果集,我们将这些结果集映射到不同的类。在 iBatis 中,我们可以使用逗号分隔的列表 int resultType 来映射不同的结果,如下所示:

但这在 MyBatis 3 中似乎不起作用。除了默认情况下启用多个结果集的配置项外,我在文档中找不到任何内容。但没有关于如何实际处理它们的信息。

0 投票
2 回答
2726 浏览

spring - 事务不回滚

我在 Fuse (OSGi) 中部署了带有 mybatis-spring 集成 1.0.1 的 mybatis 3.0.4。我在 SQLServer 2008 中创建了一个基本数据库。在 Spring 中,我配置了一个TransactionAwareDataSourceProxy数据源和一个DataSourceTransactionManager事务管理器。

现在我已经创建了自己的捆绑包以部署在 Fuse 中,它将一些行插入到数据库中。我已经告诉捆绑包使用配置的数据源和事务管理器。执行逻辑的方法如下所示:

当此方法引发异常时,我可以通过查看触发的预期行为来跟踪 Spring。这将我引向 SpringsJtaTransactionManagerdoRollBack(..).

所以一切看起来都很有希望,除了当我查看数据库时,果然它处于不稳定状态,因为以前的插入还没有回滚。

我对此一无所知,我正在努力在网上找到任何信息。有什么想法吗?

0 投票
2 回答
357 浏览

java - 在 Activiti 中拦截任务创建以更新并行搜索索引的最佳方法?

我们将 Activiti 嵌入到应用程序中,并且对搜索超出 Activiti 开箱即用任务查询功能的任务有一些特定要求。我目前正在考虑集成 ElasticSearch 并维护一个专门的任务索引。为此,我需要拦截 Activiti 中的任务创建。

我还没有找到一个“本机”和透明的(因为我不应该将它显式地建模到我的工作流程中)为此的 Activiti 机制(如拦截器机制)。目前我最好的选择是编写一个 myBatis 拦截器插件。

在我承诺之前,我想确保我没有错过更清洁/更简单的方法。

0 投票
2 回答
220 浏览

java - 插入的条目不会在数据库中永久保留

早上好,

昨天我第一次使用MyBatis。作为起点,我使用了Loiane Groner的示例。我试图用内部 hsqldb (v1.8) 替换 mysql db。我改变了一切,但我从来没有让插入单元测试按预期工作。见下文,首先是所有必要的部分。

该测试将通过,因为使用 select 方法我将检索之前插入的联系人。但是,如果我打开 hsqldb 中没有联系人( entry )。我真的希望,这个测试只会通过一次。如果我第二次调用它,应该有不止一个条目。但这不会发生。为什么,不保持永久联系?(没有清理方法)

0 投票
2 回答
3030 浏览

java - 在 MyBatis 中使用 SET 语句

(我在 Teradata v12 上使用 MyBatis v3、Java SE v6、Tomcat v6 和 Spring v3。)

我当前项目的技术要求之一是使用 Teradata 中的查询分段功能。这是通过在需要时运行如下语句来完成的:

SET QUERY_BAND='someKey=someValue;' FOR TRANSACTION;

我想为我的所有电话设置一个查询带。但是,我不确定如何以干净且可重用的方式添加此功能,而不必将其添加到<select>映射器文件中的每个语句中,如下所示:

我对上述问题的看法是:1)查询带的格式在我的所有映射器 XML 文件中都是相同的,除了 k 和 v,我想在每个<select>(等)的基础上进行自定义。我不确定如何在不必传入 k 和 v 值的情况下进行此自定义,这会使我的映射器界面变得混乱。2)上面的代码中有重复让我感到不安。开发人员必须记住包含 queryBand SQL,有些人会在某个阶段忘记它(墨菲定律)。

有人可以指出我以更清洁的方式实现查询绑定的解决方案的方向吗?