今天在练习 MyBatis 时出现了一个问题:
mapper.java代码如下
@Mapper
public interface UserinfoMapper {
List<Userinfo> testOracle1(String username);
List<Userinfo> testOracle2(String username);
List<Userinfo> testOracle3(String username, String password);
List<Userinfo> testMySQL1(String username);
List<Userinfo> testMySQL2(String username);
List<Userinfo> testMySQL3(String username, String password);
}
mapper.xml代码如下
<select id="testOracle1" parameterType="String" resultType="com.lj.www.entity.Userinfo"
databaseId="Oracle">
select *
from userinfo
where username like '%${value}%'
</select>
<select id="testOracle2" parameterType="String" resultType="userinfo" databaseId="Oracle">
select * from userinfo where username like '%'||#{value}||'%'
</select>
<select id="testOracle3" parameterType="String" resultType="userinfo" databaseId="Oracle">
select * from userinfo
where username like
'%'||#{username}||'%'
and password like
'%'||#{password}||'%'
</select>
<select id="testMySQL1" parameterType="java.lang.String"
resultType="userinfo" databaseId="MySQL">
select *
from userinfo
where username like '%${value}%';
</select>
<select id="testMySQL2" parameterType="String" resultType="userinfo" databaseId="MySQL">
select * from userinfo where username like concat("%",#{value},"%")
</select>
<select id="testMySQL3" parameterType="String" resultType="userinfo" databaseId="MySQL">
select * from userinfo
where username like
concat("%",#{username},"%")
and password like
concat("%",#{password},"%")
</select>
Controller代码如下
@ResponseBody
@RequestMapping("test3")
public void test3(){
String username = "x";
String password = "c";
mapper.testOracle1(username);
mapper.testOracle2(username);
mapper.testOracle3(username,password);
username = "中国";
password = "中国人";
mapper.testMySQL1(username);
mapper.testMySQL2(username);
mapper.testMySQL3(username,password);
}
最终报错
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.lj.www.mapper.UserinfoMapper.testMySQL1
请问问题出在了哪里(target目录下的内容正常更新)
你是多数据库配置?