Java 什么是会话。选择一个(字符串arg0,对象arg1);?

Java 什么是会话。选择一个(字符串arg0,对象arg1);?,java,mybatis,ibatis,Java,Mybatis,Ibatis,我是MyBatis新手,我找不到要学习的教程,现在我要开始使用Spring学习MyBatis,我使用了session.selectOneString arg0,Object arg1,但我无法理解它是如何工作的,以及它将如何处理第二个参数Object arg1 有人能帮上忙吗。 谢谢selectOne和selectList的第二个参数用于参数。如果您在查询中有非常简单的需求,例如单个整数,或者对于需要插入许多值的更复杂的查询,它可以是一个原语,一个bean类实例,其中的值根据需要填充,并包含适当

我是MyBatis新手,我找不到要学习的教程,现在我要开始使用Spring学习MyBatis,我使用了session.selectOneString arg0,Object arg1,但我无法理解它是如何工作的,以及它将如何处理第二个参数Object arg1

有人能帮上忙吗。 谢谢

selectOne和selectList的第二个参数用于参数。如果您在查询中有非常简单的需求,例如单个整数,或者对于需要插入许多值的更复杂的查询,它可以是一个原语,一个bean类实例,其中的值根据需要填充,并包含适当的getter和setter

然后,在映射器文件中,通过parameter属性定义参数的类型,然后可以内联插入或使用转义插入,前者用于永远不应转义的内容,如变量表或列名,后者用于始终应转义的内容,如WHERE子句中的值

有关更多详细信息,请参见MyBatis文档:

对OP评论的回应:

MapBuilder必须是与地图数据结构相关的自定义代码。作为番石榴的一部分,有一个ImmutableMap.Builder,但这看起来不像是什么。我认为这与Mybatis本身无关

看起来代码只是构建了一个Map对象,然后将其传递给selectOne查询,以便在mapper中的查询定义中使用,而不是自定义bean类


映射器中LoginMapper.getUserByUsername的定义是什么?在该定义中,映射对象的内容很可能被插入到查询中,因此可以包含动态值。

'map map=new MapBuilder.addDatausername,loginenty.getUserName.getMapObject;LoginEntity dbLoginEntity=session.selectOneLoginMapper.getUserByUsername,map;'那是什么意思,,,?映射器如何将其用作会话中的第二个参数;你能再详细一点吗!这看起来像是旧的Mybatis代码。Mybatis-3的代码中根本不显示MapBuilder。你想用什么版本?我用的是MyBatis 3.2.7,但在3.x中我仍然看不到该类的任何迹象。我在代码中看到一个MapperBuilderAsistant类。定义如何在Mybatis-3中使用映射器。