问题标签 [mybatis-generator]

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 回答
97 浏览

code-generation - 我可以动态生成 mybaits Mapper 吗?

var ${module} 可能是表配置中 domainObjectName 的值。

0 投票
2 回答
4620 浏览

mysql - mybatis 生成器“列名模式不能为 NULL 或空”

我在 Eclipse 中使用 MyBatis 生成器。这是 generatorConfig.xml 文件。当我右键单击并选择“生成 MyBatis 工件”时,它会显示错误消息,例如“列名模式不能为 NULL 或为空”。

你能帮我解决这个问题吗?谢谢!

0 投票
0 回答
933 浏览

spring - Mybatis generator mapper 和示例catn't injection to service layer(解析)

  • 我的项目是使用 jsf-spring-mybatis 框架,我使用 mybatis-generator 创建 dao、mapper 和模型,还包括模型示例,github 上的项目地址是jsf-spring-mybatis 项目
  • 控制器层

    • 服务层

      /li>
  • 模型层中的 Example.java

public Criteria createCriteria() { Criteria criteria = createCriteriaInternal(); if (oredCriteria.size() == 0) { oredCriteria.add(criteria); } return criteria; } - ExampleMapper.xml

- Eclipse 控制台信息

  • 更新服务层

    /li>
  • 在控制器层添加带有服务接口的 getter 和 setter 函数

    @ManagedProperty(value = "#{employeeService}") 私人 EmployeeFace 脸;

    /li>
  • 为模型添加一个空结构

  • 好的,解决这个问题。
0 投票
0 回答
409 浏览

java - Mybatis-generator 在 Mac 上使用 java 1.8 不起作用

我在下面有 mybatis-generator 配置文件:

当我使用命令“java -jar mybatis-generator-core-1.3.2.jar -configfile ORM-config.xml -overwrite”运行 nybatis-generator 时,生成器的结果是

结果和java版本

在我的 Mac 上,我使用的是 java 8

有人像我一样有错误吗??

0 投票
1 回答
801 浏览

mybatis-generator - ClassNotFoundException: MyBatis3Simple

当我使用 mybatis-generator 从 mysql 自动生成映射器 xml 和模型时,但出现错误:

生成器配置为:

pom.xml 是:

但如果我使用 MyBatis3,它运行正常。

0 投票
2 回答
16252 浏览

java - 使用 MyBatis 映射输入和输出参数

我正在学习如何使用MyBatis。老实说,我非常喜欢这个框架。它易于使用,我对它很满意,因为我可以使用我的 sql 命令:) 我使用 MyBatis 3.4.2 和 PostgreSQL 数据库。

例如,我喜欢在插入@SelectKey注释之前执行查询是多么容易。如果我在接口方法之前添加一些注释,数据映射就像一个魅力,就像这样:@Results({ @Result(property = "javaField", column = "database_field", javaType = TypeHandler.class).

我不喜欢的(我希望你能把我引向正确的方向)如下:


(问题 1)我有一些查询允许我使用 null 和正常值,而无需任何额外的“if”java 语句来检查变量是否包含 null 值。它们看起来像这样:

使用 JDBC,我需要执行以下操作:

如您所见,我需要传递两次userId,因为这是 JDBC 的工作方式。老实说,我的期望是下面的代码可以与 MyBatis 一起使用,但不幸的是它不起作用。第三个参数仍然需要定义。

我想知道是否可以将这个功能添加到 MyBatis 中。如果 MyBatis 可以自动绑定两次userId应该没问题,如下所示:

我实际做的解决方法如下。我讨厌它,因为它很棘手,并且需要额外的 java "if" 语句:

我不知道用 MyBatis 管理这种情况的最佳做法是什么。请指导我。


(问题 2)@Select. 在映射具有相同结果类型的查询结果时,有什么方法可以避免重复代码?

第一个查询:

第二个查询:

我可以以某种方式重用与映射相关的代码吗?我需要添加映射,因为我对状态字段使用特殊类型的处理程序。我使用基于注释的配置。


(问题 3) @Param注释我在文档中看不到任何关于@Param注释的内容。这很难弄清楚为什么我的 java 参数没有正确限制。最后我意识到@Param我的代码中缺少注释。为什么官方文档中没有提到这一点?我以错误的方式做某事并且@Param没有必要使用?

该代码工作正常:

这不起作用:


更新(问题 1)

我的第一个想法与@blackwizard提到的类似:“Mybatis 确实按名称绑定参数,然后一次、两次、N 次,只要它被引用,它就可以工作。”

但这实际上不能正常工作。如果 userId 不为空,它会起作用。如果它为空,我会得到一个从数据库返回的很好的异常。我猜 MyBatis 以错误的方式绑定 null 值。也许这是一个错误。我不知道 :(

例外:

最后我找到了三种不同的解决方案。

(问题1:解决方案1)

我遵循@blackwizard提到的内容,并且能够将条件userId = (userId == null) ? -1 : userId从 java 移动到 MyBatis 级别。而且还不错!正确的语法是:<if test='userId==null'><bind name='userId' value='-1'/></if>.

(问题1:解决方案2) 我从postgres返回错误的原因could not determine data type of parameter $2是因为在空值的情况下,JDBC驱动程序无法确定参数的类型。所以让我们手动定义它。

(问题1:解决方案3) 第二种解决方案依赖于PorstgreSQL。以下解决方案完全独立于数据库。感谢@blackwizard 的精彩评论。

我个人更喜欢解决方案 3。它包含的附加代码较少。

0 投票
1 回答
672 浏览

java - MyBatis 自定义查询:为什么不生成模型和映射器方法?

MyBatis Java生成器为什么不创建:

  1. 用于自定义结果映射的 Java 模型;和
  2. 用于自定义查询的 Java 映射器方法?

自定义查询和结果映射基于 MyBatis SqlMap XML,因此我认为应该可以创建模型类并将方法添加到 Mapper 类。

还是我误解了什么?

0 投票
5 回答
5286 浏览

maven - 怎么可能让 MyBatis Generator 覆盖已经生成的 *Mapper.xml?

像标题一样,当我执行 mybatis-generator 时,我想覆盖已经生成的 *Mapper.xml 全部,而不是合并!但我尝试了很多配置方式,它没有实现正确。并且每次生成 xml 内容的次数越多。像这样:

在属性中,我添加了这一行:

在构建 > 插件中,我添加以下行:

在 mybatis-generator.xml 中,我尝试覆盖配置。所有配置都不起作用。

我该如何修改配置?

0 投票
1 回答
728 浏览

eclipse - 如何使用 MyBatis Generator Eclipse 插件将 SqlMap 文件放入 src/main/resources?

是否可以配置 MyBatis Generator Eclipse 插件在 src/main/resources 目录下生成 SqlMap 文件?

当我为 targetProject 使用路径时,出现错误。当我只使用项目时,SqlMap XML 文件是在 src/main/java 中创建的(我必须使用 maven 将它们复制到 src/main/resources.

这会导致错误:

src/main/resources 存在。

0 投票
1 回答
563 浏览

gradle - MyBatis Generator 在我将项目转换为 Gradle (STS) 或 Maven 后停止工作

我们正在研究使用 MyBatis Generator 来创建我们的基础实体类并创建 CRUD 操作

我们已经创建了 generatorConfig.xml 文件并运行 MyBatis Generator 在我们的目标文件夹中,所有类都按预期创建

现在我们将项目转换为使用 Gradle (Gradle STS),因为这是我们所有其他项目的约定

一旦我们这样做并重新运行 MyBatis 生成器,我们会收到以下错误

“找不到项目的源文件夹”

我们做错了什么?

这是配置文件

我创建了 Java 项目“myBatisArt”

在第一次运行时,所有文件都创建好了。

然后在点击“配置->转换为 Gradle (STS) 项目时

(见图)

并再次运行生成过程我得到了错误

“找不到项目的源文件夹”

在此处输入图像描述