问题标签 [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.
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 的问题?
spring - Mybatis insert 在任务中完成时冻结
我有一个这样定义的sql会话:
现在,在我的服务中,我必须在一个表上进行一些选择,并在另一个表中进行一些插入。
问题是程序只是冻结了!而且我确信这不是我的逻辑的错,因为程序通过注释插入行成功结束。所以我猜这是第二张表的并发问题,我正在插入数据。
mybatis - 有没有办法获取当前的执行者类型?
我正在尝试使用 for each 方法进行批量插入,但出现异常告诉我无法更改正在运行的执行程序类型。这很奇怪,因为我有一个这样定义的 SQL 会话:
无论哪种方式,我都想检查当前的执行程序类型是什么,以确保它是一个 BATCH 类型。怎么做?我在 SQLSession 中看不到任何方法...
java - MyBatis 选择生成器
我正在尝试提出一个动态查询,根据我所做的研究,看起来我最好的选择是选择构建器,因为我想使用注释而不是 XML。
我有两个参数;我要传递给此查询构建器方法的列表和对象。我可以毫无问题地使用该对象,但无法从该方法访问列表。
这是我的映射器界面:
这是 ProductProvider 类的 getProductByBrandByCategory 方法:
基本上,我正在尝试遍历列表以根据列表中的元素添加和/或/where 语句。
有没有办法可以访问brandList 元素?我的猜测是它是 Maps 参数的一部分,但不知道如何访问它。
提前致谢。
spring-mybatis - 类型处理程序在属性 + MyBatis 错误的参数映射上为空
我有这样的 Ciudad 类和 Departamento 类: public class Ciudad {
}
类部门:公共类部门{
...和我的城市地图绘制器:
显然,你有一个 DAO 接口和服务,当我尝试使用 4Junit 测试执行时,这里有一些异常,如下所示:
原因:java.lang.IllegalStateException:类型处理程序在属性“departamento”的参数映射上为空。未指定和/或找不到指定的 javaType / jdbcType 组合。
有人可以告诉我如何解决吗?
mybatis - 在 MyBatis 中强制执行长度检查约束的方法
我在数据库中为特定列定义了一些由 SYS 模式定义的检查约束。现在,虽然通过 MyBatis 从 Java 代码调用它,但无论如何只能通过 MYBatis 配置强制执行相应的字段长度验证。
PS:我不想在 VO 级别强制执行约束(单独设置)。或使用 JSR 303
数据库:使用 MyBatis 的 Oracle 11g
spring - 如何使用 Spring 和 MyBatis 设置事务隔离级别
我喜欢自己设置 Isolationlevel,使用 Spring Framework 中的 transactionmanager 结合 myBatis。我尝试了很多教程,但没有任何效果。
我的应用程序是作为 MVC 模式构建的,这意味着我有视图、模型、用于来自 mybatis 的依赖注入的接口和一个控制器类。
我希望有人能给我建议,我是 mybatis 和 spring 的新手。整个应用程序运行得很好,但我喜欢接管对隔离级别的控制。
我正在使用 mybatis 的依赖注入来从数据库中获取数据
iterface 包 de.hrw.mgmtDAO 的示例;
导入 java.util.List;
这是我包含视图(框架)的主类
这是控制器。在这里我尝试将隔离级别设置为 SERIALIZABLE 但它始终设置为默认值 (-1)
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
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
java - 在参数化 DataSource bean 之后加载 PropertyPlaceholderConfigurers
在我的应用程序上下文的顶部,我声明了一个 PropertyPlaceholderConfigurer
稍后,我声明了一个由该属性文件中的属性参数化的数据源 bean
在部署期间,我注意到在初始化 PropertyPlaceholderConfigurer 之前创建了数据源 bean 并尝试建立连接。这导致我的数据源参数化没有被填充。
知道为什么会发生这种情况吗?
bean 是否有特定的创建顺序?某些 bean 是否总是在其他 bean 之前初始化?有没有办法确保在所有其他 bean 之前加载 PropertyPlaceholderConfigurer?