# 和 $ 都是为了获取变量的值
# 和 $ 区别 :
使用 # 查询 id 为 1 的内容
如果看不懂代码,就去看<<Mybatis 的操作(结合上文)续集>>,我这里为了简练一点就不多解释了
@Select("select * from userInfo where id = #{id}")
UserInfo selectOne(Integer id);
@Test
void selectOne() {
log.info(userInfoMapper.selectOne(1).toString());
}
使用 $?查询 id 为 1 的内容
@Select("select * from userInfo where id = ${id}")
UserInfo selectOne(Integer id);
@Test
void selectOne() {
log.info(userInfoMapper.selectOne(1).toString());
}
然后我们再换一个案例,根据姓名查询数据
先使用"#"
@Select("select * from userInfo where username = #{username}")
UserInfo selectByName(String username);
@Test
void selectByName() {
log.info(userInfoMapper.selectByName("admin").toString());
}
然后我们使用"$" ,注意哦,这里的 ${} 外面加了单引号
@Select("select * from userInfo where username = '${username}'")
UserInfo selectByName(String username);
@Test
void selectByName() {
log.info(userInfoMapper.selectByName("admin").toString());
}
这是因为使用 # 的时候,如果参数为 String ,会自动加上单引号
但是 $ 不会加上单引号, $ 是直接进行拼接,所以如果 $ 遇到 String 就要自己加上单引号
?