mybatis3.4.5版本
导包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
低版本3.4.x,并且只有一个参数username
,要在动态sql中使用,必须要加上@Param
3.5.x
以上版本,如果只有一个参数,可以不加@Param
接口:
User findByUsername(@Param("username") String username);
对应动态sql语句
<select id="findByUsername" parameterType="string" resultType="user">
SELECT * FROM user
<where>
<if test="username!=null and username!=''">
WHERE username = #{username}
</if>
</where>
</select>
测试
UserMapper userMapper = null;
@Test
public void findByUsername() {
User user = userMapper.findByUsername("张三");
System.out.println(user);
}
3.4.5版本
报bug
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'username' in 'class java.lang.String'
### Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'username' in 'class java.lang.String'
大概意思是getter
方法对username
不可用
3.5.x
版本修复了这个问题