queryUserByTableName(@Param(\"tableName\") String tableName);#{}多个参数时:
/**
* 登录(直接使⽤注解指定传⼊参数名称)*
* @param userName* @param password* @return*/
public User login( String userName, String password);
报错:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parametersare [0, 1, param1, param2]
### Cause: org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parameters are [0, 1, param1, param2]解决⽅案⼀:
解决⽅案⼆:
最终解决⽅案:
/**
* 登录(直接使⽤注解指定传⼊参数名称)*
* @param userName* @param password* @return*/
public User login(@Param(\"userName\") String userName, @Param(\"password\") String password);
通常在⽅法的参数列表上加上⼀个注释@Param(“xxxx”) 显式指定参数的名字,然后通过${“xxxx”}或#{“xxxx”}sql语句动态⽣成的时候,使⽤${};sql语句中某个参数进⾏占位的时候#{}
3.resultMap
使⽤:
4.sql⽚段
例如在UserMapper.xml中定义如下⽚段:
id,user_name,password,name,age,sex,birthday,created,updated
Sql⽚段也可以定义在单独的.xml⽂件中如:定义CommonSQL.xml:
PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">
id,user_name,password,name,age,sex,birthday,created,updated
使⽤:
当然要完成这个功能还需要在全局配置⽂件mybatis-config.xml中引⼊该外部配置⽂件: