There is no getter for property named 'code' in 'class java.lang.String'

MyBaits中调用sql语句,往里传参数的过程是:如果是基本类型,直接让sql中的变量去接收传进来的变量值;如果是引用的话,先new 一个入参类型的对象 obj,然后将传进来的参数对象交给这个obj,然后通过sql中的变量名反射得到相应的get方法对象,然后通过get方法对象获取值。

这是基本类型:




User user = sqlsession.selectOne("test.queryUserById", 1);

这是引用类型:




List users = sqlsession.selectList("test.queryUserByName", "tom");

在这里如果我sql中的参数写成%${value}%,也是可以的,因为String中有getValue方法。如果瞎写如aaa,则会报错:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'aaa' in 'class java.lang.String'
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)

 

你可能感兴趣的:(MyBaits)