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

java - 为什么 interface 和 xml mapper 文件必须在同一个包中并且具有相同的名称?

今天准备了一个使用Spring Boot的例子,在Spring-MyBatis旁边使用MyBatis进行数据访问通信。这是相关的项目配置(使用maven):

文件的相关内容:

CategoryDao.java:

类别映射器.xml:

然后,我在请求控制器中注入这个 dao 的一个实例(用于测试目的),如下所示:

我运行我的项目并通过使用测试执行curl localhost:8080/category/all,然后期望看到 JSON 格式的结果,但我得到了这个异常:

我不明白这是什么原因。有一个接口CategoryDao,它有与 .getAllCategories匹配的正确方法<select id="getAllCategories">。在玩了一段时间后,我将 dao 接口的名称更改为CategoryMapper并更新了 CategoryMapper.xml 中的命名空间。在我这样做之后,一切正常。此外,在类和 xml 具有相同名称后,我将 dao 类和 xml 映射器移动到不同的包中(仍然使用相同的名称:CategoryMapper。),更新 xml 文件中的命名空间,并得到相同的异常, 更新消息以显示 dao 接口的包名。但是话又说回来,我将两个文件都移到了同一个包中,一切都恢复了。

所以,我的问题是:为什么 MyBatis 需要接口和 xml 映射器文件具有相同的名称并在同一个包中?这是 MyBatis 的设计还是 Spring MyBatis 的问题?

0 投票
0 回答
245 浏览

spring - Mybatis insert 在任务中完成时冻结

我有一个这样定义的sql会话:

现在,在我的服务中,我必须在一个表上进行一些选择,并在另一个表中进行一些插入

问题是程序只是冻结了!而且我确信这不是我的逻辑的错,因为程序通过注释插入行成功结束。所以我猜这是第二张表的并发问题,我正在插入数据。

0 投票
1 回答
706 浏览

mybatis - 有没有办法获取当前的执行者类型?

我正在尝试使用 for each 方法进行批量插入,但出现异常告诉我无法更改正在运行的执行程序类型。这很奇怪,因为我有一个这样定义的 SQL 会话:

无论哪种方式,我都想检查当前的执行程序类型是什么,以确保它是一个 BATCH 类型。怎么做?我在 SQLSession 中看不到任何方法...

0 投票
1 回答
3555 浏览

java - MyBatis 选择生成器

我正在尝试提出一个动态查询,根据我所做的研究,看起来我最好的选择是选择构建器,因为我想使用注释而不是 XML。

我有两个参数;我要传递给此查询构建器方法的列表和对象。我可以毫无问题地使用该对象,但无法从该方法访问列表。

这是我的映射器界面:

这是 ProductProvider 类的 getProductByBrandByCategory 方法:

基本上,我正在尝试遍历列表以根据列表中的元素添加和/或/where 语句。

有没有办法可以访问brandList 元素?我的猜测是它是 Maps 参数的一部分,但不知道如何访问它。

提前致谢。

0 投票
0 回答
6585 浏览

spring-mybatis - 类型处理程序在属性 + MyBatis 错误的参数映射上为空

我有这样的 Ciudad 类和 Departamento 类: public class Ciudad {

}

类部门:公共类部门{

...和我的城市地图绘制器:

显然,你有一个 DAO 接口和服务,当我尝试使用 4Junit 测试执行时,这里有一些异常,如下所示:

原因:java.lang.IllegalStateException:类型处理程序在属性“departamento”的参数映射上为空。未指定和/或找不到指定的 javaType / jdbcType 组合。

有人可以告诉我如何解决吗?

0 投票
1 回答
2085 浏览

mybatis - 在 MyBatis 中强制执行长度检查约束的方法

我在数据库中为特定列定义了一些由 SYS 模式定义的检查约束。现在,虽然通过 MyBatis 从 Java 代码调用它,但无论如何只能通过 MYBatis 配置强制执行相应的字段长度验证。

PS:我不想在 VO 级别强制执行约束(单独设置)。或使用 JSR 303

数据库:使用 MyBatis 的 Oracle 11g

0 投票
2 回答
4993 浏览

spring - 如何使用 Spring 和 MyBatis 设置事务隔离级别

我喜欢自己设置 Isolationlevel,使用 Spring Framework 中的 transactionmanager 结合 myBatis。我尝试了很多教程,但没有任何效果。

我的应用程序是作为 MVC 模式构建的,这意味着我有视图、模型、用于来自 mybatis 的依赖注入的接口和一个控制器类。

我希望有人能给我建议,我是 mybatis 和 spring 的新手。整个应用程序运行得很好,但我喜欢接管对隔离级别的控制。

我正在使用 mybatis 的依赖注入来从数据库中获取数据

iterface 包 de.hrw.mgmtDAO 的示例;

导入 java.util.List;

这是我包含视图(框架)的主类

这是控制器。在这里我尝试将隔离级别设置为 SERIALIZABLE 但它始终设置为默认值 (-1)

0 投票
1 回答
1320 浏览

spring - 带有 Mybatis crud 的 Spring MVC:使用 Junit 测试时错误无法加载 ApplicationContext

当我尝试将 mybatis crud 与 spring mvc 4 一起使用时出现错误。我在 eclipse/spring 工具中使用 spring mvc 项目。我直接创建 spring mvc 项目而不是从 maven 项目

目录

mybatisConfig.xml

envMapper.xml

接口 EnvDAO.java

springConfig.xml

junit 测试类

错误跟踪

添加依赖后

仍然有错误

这是痕迹

这是我的 pom.xml

0 投票
2 回答
1121 浏览

java - 如何将 springConfig.xml 导入 web xml

我目前正在直接从eclipse中的spring mvc模板创建一个spring mvc eclipse项目。我将 mybatis api 用于 dao crud。当我使用 junit 测试 crud mybatis crud 时,没有错误。但是当我尝试将它与真实控制器一起使用时出现错误。我想可能是因为我没有链接 springConfig.xml 和 web.xml 来加载配置。你能告诉我怎么做吗?

以下是我的文件的内容: springConfig.xml 位于 javaresource 文件夹中

web.xml 位置 int webint 目录

我的目录结构 在此处输入图像描述

这是我尝试使用的 homecontroller.java

0 投票
2 回答
535 浏览

java - 在参数化 DataSource bean 之后加载 PropertyPlaceholderConfigurers

在我的应用程序上下文的顶部,我声明了一个 PropertyPlaceholderConfigurer

稍后,我声明了一个由该属性文件中的属性参数化的数据源 bean

在部署期间,我注意到在初始化 PropertyPlaceholderConfigurer 之前创建了数据源 bean 并尝试建立连接。这导致我的数据源参数化没有被填充。

知道为什么会发生这种情况吗?

bean 是否有特定的创建顺序?某些 bean 是否总是在其他 bean 之前初始化?有没有办法确保在所有其他 bean 之前加载 PropertyPlaceholderConfigurer?