在我们xml的配置中,parameterType用于表示参数的类型,这里可以传int,也可以传类,MyBatis用ognl表达式解析对象字段的值
OGNL表示式是阿帕奇开发出来的,全称叫Object Graphic Navigation Language——对象图导航语言。它通过对象的取值方法获取数据,写法上把get给省略了。
例如我们要获取User的名称,类中我们写user.getUsername(),而OGNL表达式写法为user.username,那为什么在MyBatis里我们可以直接写username而不用写user.呢,是因为parameterType中已经提供了属性所属的类
但如果现在的查询条件是一个对象呢,我们要在写查询方法的时候,把查询对象当成一个参数传递进去
我们来写这个查询的方法
现在QueryVo是一个类,我们在domian定义一下QueryVo类,其包含成员变类User
现在假定我们的查询条件就是模糊查询,我们现在来写xml配置文档,需要注意的是现在的参数是QueryVo,我们不能直接写username,因为QueryVo类里没有username这个属性,要写user.username,这样就符合OGNL表达式了。
然后我们来写测试文档,此时我们要自己实例化一个vo,当作这次查询的条件
运行一下,并没有问题