我是MyBatis的新手,我无法找到要学习的教程,现在我将开始使用Spring在MyBatis上工作,我曾使用session.selectOne(String arg0, Object arg1)
但我无法理解它是如何工作的以及什么它将使用第二个参数,即Object arg1。
任何人都可以提供帮助。 谢谢
答案 0 :(得分:0)
selectOne
和selectList
的第二个参数是参数。如果您的查询中有非常简单的需求,例如单个整数,或者需要插入许多值的更复杂查询, bean类实例,它可以是原语根据需要填充值(并包含正确的 getters 和 setters )。
在映射器文件中,然后通过参数属性定义参数的类型,然后可以内联或使用转义进行插值(前者用于应该的内容永远不会被转义,例如变量表或列名,后者应该总是被转义,例如WHERE
子句中的值。
有关详细信息,请参阅MyBatis文档: http://mybatis.github.io/mybatis-3/java-api.html
对OP评论的回应:
MapBuilder
必须是与Map
数据结构相关的自定义代码。作为 Guava 的一部分有一个ImmutableMap.Builder
,但这似乎不是这样的。我认为这与 Mybatis 本身无关。
看起来代码只是构建一个Map对象,然后将其传递给selectOne
查询,以便在映射器中的查询定义中使用(而不是自定义) bean 类)。
映射器中 LoginMapper.getUserByUsername 的定义是什么?在该定义中,地图对象的内容可能被插入到查询中,因此可以包含动态值。