Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
生活随笔
收集整理的這篇文章主要介紹了
Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mybatis映射文件SQL語句模糊查詢
1. “%”#{value}"%" 在參數中不需要添加 %_ 推薦使用
2. ‘%${value}%’ 在參數中不需要添加 %_
3. #{abc} 在參數中添加 %_
#和$的區別和注意事項
${}直接拼接 ,不會轉換類型
如果是簡單類型,必須寫${value} 如果是pojo類型,${屬性名}(注意:需要轉換類型)#{}相當于占位符,可以自動的轉換類型 可以防止SQL注入
如果是簡單類型,可以隨便寫${隨便寫} 如果是pojo類型,${屬性名}(注意:可以自動轉換類型)一、# “%”#{value}"%"
1.UserMapper.xml
<select id="findByUsername" parameterType="java.lang.String" resultType="com.william.domain.User">select * from user where username like "%"#{value}"%"</select>2.TestMybatis
/*** 模糊查詢* 通過用戶名字模糊查詢*/@Testpublic void findByUsername(){InputStream inputStream = Resources.class.getClassLoader().getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();List<User> selectList = sqlSession.selectList("com.william.mapper.UserMapper.findByUsername","a");for (Object o : selectList) {System.out.println(o);}sqlSession.close();}3.測試結果
執行的SQL語句
Preparing: select * from user where username like "%"?"%" Parameters: a(String)二、$ ‘%${value}%’
1.UserMapper.xml
<!--模糊查詢--><select id="findByUsername" parameterType="java.lang.String" resultType="com.william.domain.User">select * from user where username like '%${value}%'</select>2.TestMybatis
/*** 模糊查詢* 通過用戶名字模糊查詢*/@Testpublic void findByUsername(){InputStream inputStream = Resources.class.getClassLoader().getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();List<User> selectList = sqlSession.selectList("com.william.mapper.UserMapper.findByUsername","a");for (Object o : selectList) {System.out.println(o);}sqlSession.close();}3.測試結果
執行的SQL語句
Preparing: select * from user where username like '%a%' Parameters:三、在測試類參數中添加
1.UserMapper.xml
<select id="findByUsername" parameterType="java.lang.String" resultType="com.william.domain.User">select * from user where username like #{abc}</select>2.TestMybatis
/*** 模糊查詢* 通過用戶名字模糊查詢*/@Testpublic void findByUsername(){InputStream inputStream = Resources.class.getClassLoader().getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();List<User> selectList = sqlSession.selectList("com.william.mapper.UserMapper.findByUsername","%a%");for (Object o : selectList) {System.out.println(o);}sqlSession.close();}3.測試結果
執行的SQL語句
Preparing: select * from user where username like ? Parameters: %a%(String)總結
以上是生活随笔為你收集整理的Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上香的左右顺序是什么
- 下一篇: 迷你世界游戏网名大全158个