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

mybatis - MyBatis 的 Javadoc 在哪里?

我下载了MyBatis,文件夹中有一个mybatis-3.0.4-javadoc.jar,我解压打开它,但它几乎是空的。

我在哪里可以找到 MyBatis 的 API 文档?

0 投票
2 回答
8952 浏览

xml - MyBatis Configuration.xml 和数据源

每次尝试连接到数据库时,我都会不断收到此异常。

构建 SqlSession 时出错。

SQL Mapper 配置中可能存在错误

原因:org.apache.ibatis.builder.BuilderException:创建文档实例时出错。原因:org.xml.sax.SAXParseException:元素类型“dataSource”的内容必须匹配“(property)*”。

这是我的 Conifugration.xml 文件:

我已经在谷歌上搜索过这个,查找了数据源样本,它就像其他人一样,也像文档一样。

有谁知道它是什么?

0 投票
1 回答
4979 浏览

annotations - MyBatis 在插入和更新时将属性映射到数据库列(使用注释)

我刚开始学习 MyBatis,我想知道,当我创建插入或更新查询时,有没有一种方法可以使属性名称对重构更友好?我将更详细地解释:

我的所有域类中都有可用于引用属性名称的常量。在我看来,它减少了拼写错误并使重构更容易一些。

当我使用注解创建 MyBatis 选择语句时,我可以这样做:

如果我重构我的域对象 (CustomerDetail) 并更改属性名称,它最终会变得相当简单。

但是,当我使用注释创建 MyBatis 插入语句时,我必须执行以下操作:

在这种情况下,如果我重构我的域对象 (CustomerDetail) 并更改属性名称,则更容易出错。有没有一种方法可以使用我的常量而无需求助于一堆字符串连接?这是我什至应该关心的事情吗?

作为一个新手,我期待@Insert 和@Update 注释模仿@Select 注释的结构。例如(请注意,以下不是有效的 MyBatis 注释):

我是否错过了与上述示例具有相同效果的任何选项?或者,我是否可以对 MyBatis 映射进行单元测试,以确保没有人使用我的域对象中不存在的属性名称?测试可能是更好的解决方案,因为它也适用于基于 XML 的映射。想法?

0 投票
1 回答
3474 浏览

java - Mybatis迁移工具在一个事务中运行多条mysql语句

我正在使用 Mybatis 迁移工具来维护我们数据库的架构,但我遇到了以下问题。

目前,如果我们在迁移中使用多个语句,它们每个都在单独的事务中运行。因此,如果我想更改 2 个表(或运行多个语句)作为功能的一部分并且其中一个中断,则必须手动恢复首先运行的任何表。但是,如果所有语句都成功完成,则 mybatis 迁移仅在更改日志表中标记为完成。

这真的很令人沮丧,因为如果整个迁移不是自主的,就无法维持恒定的数据库状态。

设置

这是我们测试数据库的 mybatis mygration 的(相关)设置。

我添加了 auto_commit=false、send_full_script=true 和 allowMultiQueries=true(到 url),试图将整个迁移保持在一个事务中。

我需要使用任何 mysql url 参数来允许这样做吗?这甚至可能吗?似乎应该如此。也许我们只需要为每个语句创建一个迁移,但这似乎太过分了。

例子

这是进一步说明的示例

迁移示例 20110318154857_fix_daily_sales:

如果我运行 migrate up 它会因为b0rked;预期的线路而失败。迁移状态显示迁移按预期挂起。

但是,我的数据库已应用更改!不好!

有什么办法可以防止这种情况发生吗?我是否应该将每个语句都放在迁移中并继续前进?这就是我现在的位置。

提前致谢。

0 投票
2 回答
4996 浏览

java - 生成文件中的 MyBatis 异常

我使用 MyBatis Generator 1.3.1 创建了一个 Mapper.xml 文件。MyBatis 在解析 Mapper 文件时,会抛出 BuilderException:

parseDynamicTags 无法识别 <#comment> 字段。它正在解析的 XML 部分是 selectByExample:

MyBatis 似乎已经解析了第一条评论和 select 语句。它刚刚解析了一个#text 类型的节点,但我不确定#comment 来自哪里。

我没有修改生成的文件,我很困惑这在过去正常运行并突然停止。


编辑:Base_column_list

这是example_where_clause

0 投票
1 回答
6057 浏览

java - 使用 myBatis 返回 ResultMap 中的总行数

我为这个扩展的 ResultMap 创建了 2 个附加字段 rowNumber 和 totalRows。是的,现在我有了总行数,但它存储在结果图中的每个对象中。

我怎样才能解决这个问题?

0 投票
1 回答
5621 浏览

generator - myBatis Generator - 如何仅生成选择/更新/插入/删除 SQL?

我的配置文件是:

如何只生成简单的选择/更新/插入/删除 SQL?下面没有这个?

映射器.xml

0 投票
1 回答
8395 浏览

java - MyBatis 测试表达式中的 AND 运算符在求值过程中是否短路?

MyBatis 中测试表达式中的 AND 关键字是否使用短路实现?例如,我写了以下内容:

如果第一个操作数解析为 false,是否会忽略第二个操作数?(我使用的是 MyBatis v3.0.4。)

0 投票
1 回答
2442 浏览

java - 如何使用 iBatis 将数组写入 Oracle 10g XE db?

我一直在寻找这个高低的答案,但无法得到答案。

基本上我有一个使用 iBatis 写入我的数据库的对象。这适用于字符串、int 等原始类型,但我的对象的属性之一是其他对象的数组。我希望能够坚持这一点,然后稍后调用“selectById”语句并检索包括数组在内的完整对象。

这是我到目前为止的代码:

映射器.xml

accountGrp 是我的数组,但它当前抛出错误。没有此字段,该语句可以正常工作。

java是这样的:

}

感谢您提前提供任何帮助!

0 投票
1 回答
4502 浏览

jndi - 使用 myBatis 和 c3p0 配置用户名/密码

在 j2ee 应用程序的生命周期中,我需要处理 2 个单独的数据连接。一个人事先知道它的所有属性,我这样配置 myBatis

这很棒。PooledDS 指的是我的 c3p0 配置的数据源。第二个连接将使用用户登录应用程序时确定的用户名/密码组合创建。我想再次将 c3p0 用于该数据源,并尝试将 mybatis.xml 配置为

我在 Tomcat 的 context.xml 中对应的资源条目是

你看,我将用户和密码属性留空,因为我不知道它们。当我知道我需要连接的用户时,我尝试以下操作:

你看,当我得到我的 SqlSessionFactory 时,我尝试将用户名和密码作为属性对象传递。当我在 tomcat 中查看 c3p0 的日志消息时,我看到 c3p0 属性为空,显然它从未从 myBatis 那里听到用户名和密码是什么,因此无法建立连接。我知道我使用的是正确的“用户”环境,这只是我如何正确设置此连接的用户名和密码?谢谢你的帮助。