问题标签 [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 投票
3 回答
3204 浏览

java - 当 id/uuid as 存储为二进制时,如何在使用 MyBatis 插入后返回密钥?

我们目前在我们的数据库中有触发器,可以为我插入的每条记录分发 uuid。当我使用 mybatis 插入记录时,我想取回该 uuid 而不是已插入的行数。

从上一篇文章中我读到我可以做到

但是我们将我们的 uuid 存储为二进制文件,所以我想从插入中获取非二进制 uuid。当我们插入东西时,我们使用像'uuid2bin'和'bin2uuid'这样的函数,所以我希望使用这样的函数从数据库(MySQL)中检索新生成的uuid。

关于如何取回新生成的 uuid 的任何建议?

0 投票
2 回答
3152 浏览

java - 如何使用spring mybatis将对象的Arraylist传递给过程

我想传递一个对象数组列表,例如

SomeObject两个属性keyvalue

在数据库方面,我有一个表类型的变量,即

现在我想将我的 SomeObject 类型的每个对象listOFSomeObject映射tableTypeVariable

任何机构都可以帮助我吗?

0 投票
3 回答
26734 浏览

java - Mybatis如何配置log4j来打印我的SQL

我的项目是用 SpringMVC+Mybatis+EXTJS4 搭建的。这是我的配置:

但它不会在控制台中打印 SQL,任何人都可以帮助我吗?非常感谢

0 投票
1 回答
2012 浏览

eclipse - Red5中配置mybatis-spring的问题

全部,

我正在尝试在 Red5 服务器下运行的应用程序中配置 MyBatis。我创建了一个额外的 spring 配置文件,在该文件red5-ibatis.xmlWEB-INF配置了这些 bean(如 mybatis-spring 用户指南中所述):

当我运行部署了应用程序的服务器时,出现以下异常:

我不确定,但看起来 Spring 没有看到SqlSessionFactoryBean实现FactoryBean接口,因此找不到将其转换为的方法SqlSessionFactory

无论如何,任何想法如何解决它?

0 投票
1 回答
3980 浏览

mybatis - MyBatis & RefCursor 参数

目前正在从 iBatis 升级到 myBatis。在 ibatis 中我们会有一个这样的 sql map

我想充分利用 myBatis 提供的功能(例如不需要实现映射器并避免使用不推荐使用的功能,例如 parameterMap),但我遇到了一些问题。我一直在尝试设置返回属性时遇到错误,所以我不得不将我的 resultSet 对象包装在一个包装器对象中,这是我想避免的

ConstraintHierarchyLevel 类

映射器.xml

我尝试了另一种解决方案,但未成功。在这个解决方案中,我使用了 param 注释

映射器.java

我使用与上面相同的 resultMap 但使用不同的选择块

映射器.xml

运行此程序时,我已将 MapperMethod 类调试到 execute 方法,并且 Object 参数从结果集中获取正确的数据,但是由于这没有放入发送的参数(列表)中,因此不会返回这些值。当使用对象包装器运行第一个方法时,对象被放置在向下发送的参数中,因此是可检索的。

谢谢

0 投票
10 回答
53213 浏览

sql - (如何)我可以在 SQL 查询中使用 MyBatis 安全且与 DB 无关的“LIKE”吗?

MyBatis中,您标记应该将参数插入 SQL 的位置,如下所示:

SELECT * FROM Person WHERE id = #{id}

此语法激活适当的转义等,以避免 SQL 注入攻击等。如果您有受信任的输入并且想要跳过转义,则可以逐字插入参数:

SELECT * FROM {tableName} WHERE id = #{id}

现在,我想对不安全的输入进行 LIKE 搜索,所以我想做的是:

SELECT * FROM Person WHERE name LIKE #{beginningOfName} || '%'

然而不幸的是,重要的数据库服务器不支持||连接的语法

MSSQL - 通过使用“+”运算符而不是“||”来打破标准。

...

MySQL - 通过重新定义严重违反标准 || 意思是或。

所以,我可以做

SELECT * FROM Person WHERE name LIKE CONCAT(#{beginningOfName}, '%')

在这种情况下,仅限于 MySQL,或者我可以这样做

SELECT * FROM Person WHERE name LIKE '{beginningOfName}%'

并且必须自己清理输入。

有没有更优雅的解决方案?

0 投票
1 回答
13223 浏览

java - MyBatis 3.0.5 和映射器加载问题

我正在使用 MyBatis 3.0.5,我在将映射器作为资源加载时遇到问题。我在 Windows 7 64 上,我使用 Eclipse Indigo 64bit 和 jdk7 64。MyBatis 在 Grizzly Web 容器(其中使用 jersey 框架实现的休息服务)独立实例中初始化。

我有相同的映射器仅用于测试,第一个已加载,第二个不起作用。错误:

对不起我的英语不好。

解决方案: Maven 项目需要资源到 src/main/resources 和 src/test/resources 进行测试。所以解决方案是将xml映射器放入这些文件夹中。

0 投票
1 回答
1527 浏览

jersey - ibatis / mybatis 缓存在一个安静的 web 服务中

我在 Jax-RS (Jersey) 宁静的网络应用程序中使用 mybatis。所以自动地,我没有会话或状态管理。

问题是如何使用 mybatis 的缓存功能?

0 投票
4 回答
15308 浏览

java - Mybatis 3.0.5 嵌套集合映射示例

我正在研究 MyBatis 3.0.5 的映射工具。该数据库是运行嵌入式模式的 H2 (1.3.160)。在用户手册的帮助下,我得到了简单的部分。但是我很难映射Set使用 aHashMap作为后备存储的 a。

这是自定义集合的 Java 代码,该集合具有自定义集作为字段(为简洁起见进行了简化)

这是CustomSet代码(再次,简化)

映射界面如下:

这是调用 Mybatis 框架的代码:

到目前为止,这是我可以想出的映射 XML:

通过各种迭代,我得到了“太多结果”错误、一些其他错误或什么都没有(从映射器调用返回 null)但从来没有我需要的结果。SQL 代码本身可以正常工作,如果我使用简单的 select 语句请求 List,我会返回行和 ArrayList。我遇到的问题是正确填充了嵌套的集合对象。

我已多次阅读手册,搜索示例,但我无法为此目的提出正确的映射 XML。如果有人可以帮助我或将我指向可以提供帮助的来源,我将不胜感激。

提前感谢所有帮助。

0 投票
2 回答
22228 浏览

java - Mybatis 3.0.5 多输入的插入/更新语句映射

也许我遗漏了一些明显的东西,但我无法成功执行简单的映射插入语句。

使用以下界面

和以下 XML 映射

和这段代码

我得到以下调试输出:

后跟 SQL 异常(不能在id列中输入 null)。

所以唯一正确传入的值是额外提供的字符串。我已经验证了字段名称是正确的,并且此时对象不为空,并且字段已正确填充。

我也尝试使用parameterType="CustomItem"代替,parameterType="map"但结果没有改变。

如果有人能让我知道我在这里缺少什么,我将不胜感激。

提前致谢。

PS:我也遇到了与插入语句相同的问题。