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

在mybatis中使用单个字符串类型参数查询或多个字符串类型的参数查询,需要为参数绑定名称。

错误示例:

 1 "C:\Program Files\Java\jdk1.8.0_91\bin\java.exe" -javaagent:D:\ruanjian\softwareInstall\TechnicalSoftware\idea\lib\idea_rt.jar=59620:D:\ruanjian\softwareInstall\TechnicalSoftware\idea\bin -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_91\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\rt.jar;F:\workspace\test\testMybatis\mybatisTest\target\classes;D:\ruanjian\softwareInstall\TechnicalSoftware\repository\lib\org\mybatis\mybatis\3.3.0\mybatis-3.3.0.jar;D:\ruanjian\softwareInstall\TechnicalSoftware\repository\lib\mysql\mysql-connector-java\8.0.16\mysql-connector-java-8.0.16.jar;D:\ruanjian\softwareInstall\TechnicalSoftware\repository\lib\com\google\protobuf\protobuf-java\3.6.1\protobuf-java-3.6.1.jar;D:\ruanjian\softwareInstall\TechnicalSoftware\repository\lib\log4j\log4j\1.2.17\log4j-1.2.17.jar;D:\ruanjian\softwareInstall\TechnicalSoftware\repository\lib\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\ruanjian\softwareInstall\TechnicalSoftware\repository\lib\org\slf4j\slf4j-log4j12\1.7.7\slf4j-log4j12-1.7.7.jar" com.lenovo.MybatisExample
 2 DEBUG 2022-03-11 14:19:45,882 org.apache.ibatis.logging.LogFactory: Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
 3 DEBUG 2022-03-11 14:19:46,135 org.apache.ibatis.datasource.pooled.PooledDataSource: PooledDataSource forcefully closed/removed all connections.
 4 DEBUG 2022-03-11 14:19:46,138 org.apache.ibatis.datasource.pooled.PooledDataSource: PooledDataSource forcefully closed/removed all connections.
 5 DEBUG 2022-03-11 14:19:46,139 org.apache.ibatis.datasource.pooled.PooledDataSource: PooledDataSource forcefully closed/removed all connections.
 6 DEBUG 2022-03-11 14:19:46,139 org.apache.ibatis.datasource.pooled.PooledDataSource: PooledDataSource forcefully closed/removed all connections.
 7 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
 8 ### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'roleName' in 'class java.lang.String'
 9 ### Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'roleName' in 'class java.lang.String'
10     at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
11     at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:122)
12     at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:113)
13     at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:73)
14     at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:69)
15     at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
16     at com.sun.proxy.$Proxy0.findRole(Unknown Source)
17     at com.lenovo.MybatisExample.main(MybatisExample.java:16)
18 Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'roleName' in 'class java.lang.String'
19     at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:381)
20     at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:164)
21     at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:162)
22     at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49)
23     at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
24     at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:94)
25     at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:108)
26     at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2434)
27     at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114)
28     at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
29     at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
30     at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)
31     at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
32     at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
33     at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
34     at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
35     at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
36     at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
37     at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:458)
38     at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)
39     at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
40     at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)
41     at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
42     at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)
43     at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:280)
44     at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:80)
45     at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:120)
46     ... 6 more
47 
48 Process finished with exit code 1

解决方法:

 1 package com.lenovo.dao;
 2 
 3 import com.lenovo.pojo.Role;
 4 import org.apache.ibatis.annotations.Param;
 5 
 6 public interface RoleMapper {
 7 
 8     //查询单个角色,roleName添加@Param注解绑定参数名称
 9     public Role findRole(@Param("roleName") String roleName);
10 
11 }
1 <select id="findRole" parameterType="string" resultMap="roleResultMap">
2         select id,role_name,note from t_role where 1=1
3         <if test="roleName != null and roleName != ''">
4             and role_name like concat('%', #{roleName}, '%')
5         </if>
6     </select>

 

posted @ 2022-03-11 14:32  永远的希望  阅读(243)  评论(0编辑  收藏  举报