Mybatis 多條件查詢(模糊查詢 使用in查詢)
Mybatis支援多個條件的查詢,使用if標籤拼接。
下面是三個條件的查詢得例子,使用的資料庫是mysql,用到了模糊查詢及in做條件查詢。
xml檔案:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace=""> <select id="selectTeacher" parameterType="map" resultType="map"> select t.tid,t.tname,t.taddr from test_teacher t where 1=1 <if test="tid != '' and tid != null"> and tid=#{tid} </if> <if test="tname != '' and tname != null"> and tname like #{tname} </if> <if test="addrs != '' and addrs != null"> and taddr in <foreach item="item" index="index" collection="addrs" open="(" separator="," close=")"> #{item} </foreach> </if> </select> </mapper>
dao層:
package mybatis.dao;
import java.util.List;
public interface TestTeacherDao {
public List selectTeacher(String tid,String tname,List addrs);
}
package mybatis.dao; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestTeacherDaoImpl implements TestTeacherDao { private int res=-1; private SqlSession sqlSession=null; public SqlSession getSqlSession(){ try{ String resource="mybatis-config.xml"; InputStream is=org.apache.ibatis.io.Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is); sqlSession=sqlSessionFactory.openSession(true); }catch(Exception e){ System.out.println("出錯"); e.printStackTrace(); } return sqlSession; } @Override public List selectTeacher(String tid,String tname,List addrs) { Map map=new HashMap(); map.put("tid", tid); map.put("tname", "%"+tname+"%"); map.put("addrs",addrs); sqlSession=getSqlSession(); List list=sqlSession.selectList("selectTeacher", map); return list; } }
測試:
package mybatis.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import mybatis.dao.TestTeacherDao; import mybatis.dao.TestTeacherDaoImpl; public class Test { public static void main(String[] args) { TestTeacherDao td=new TestTeacherDaoImpl(); List addrs=new ArrayList(); addrs.add("shandong"); addrs.add("beijing"); List list=td.selectTeacher("", "",addrs); for(int i=0;i<list.size();i++){ Map map=(Map)(list.get(i)); System.out.println(map.get("tname")); } } }
相關推薦
Mybatis 多條件查詢(模糊查詢 使用in查詢)
Mybatis支援多個條件的查詢,使用if標籤拼接。 下面是三個條件的查詢得例子,使用的資料庫是mysql,用到了模糊查詢及in做條件查詢。 xml檔案: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE
使用mybatis的動態sql來完成 SQL 多條件組合查詢(模糊查詢)
對於一般的模糊查詢,沒有使用框架的連結部落格地址:點選這裡 對於mybatis,框架內部欸出了處理方式,即使用mybatis的內建標籤和OGNL表示式 mybatis在select,update,delete,insert等標籤中加入了 if choose (when, ot
mybatis多條件模糊查詢
<select id="selectUserList" parameterType="cn.vipkes.dao.dto.param.UserListDto" resultType="cn.vip
mybatis多條件查詢,動態sql,模糊查詢
mapper.xml中:<select id="selectShareByName" resultMap="seeShare"> SELECT * FROM Diary <where> <!
mybatis 多條件查詢
Controller: AccountBean accountBean=new AccountBean(); accountBean.setAccount_id(Integer.parseInt(id));
MyBatis多條件分頁查詢,返回總記錄數
<!-- 通過多條件分頁查詢,返回總記錄數 --> <select id="selectPageCount" parameterType="page" resultType="
SpringBoot jpa多條件查詢(引數可能為空)語句
@Query(value = "select * from xxx where if(?1 !='',x1=?1,1=1) and if(?2 !='',x2=?2,1=1)" + "and if(?3 !='',x3=?3,1=1) ",nativ
hibernate實現多條件組合的模糊查詢
主要程式碼: @Transactional public List<Items> queryitems(int id, String name, String city, String price) { String hql="from Items it
MyBatis多條件查詢
DAO: List<LimitApply> selectInformationByOptions(Map<String, Object> map ); MAPPER:
ssh:hql動態查詢+多條件自由拼接+模糊查詢
@Override public List<Book> getByInfo(String name, String author, String publisher) { Session session=
精確查詢與模糊查詢(檔名、字串等)
字串查詢常用於搜尋檔案,查詢檔名,今天用到了就來聊聊關於字串的精確查詢與模糊查詢: 1.精確查詢: 精確查詢常用於檔名相似,或者字尾名相似的檔案,如.ali檔案.
MySQL之連線查詢,多表查詢(適合練習和初學)
Join連線圖 針對以上的多表查詢,我們嘗試做以下的實驗: Join實驗: CREATE TABLE `t_dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT
TP3.2分頁第二頁帶查詢條件顯示(兩種解決辦法)
先看看手冊的....然而怎麼都不行,最後給成GET模式 直接ok帶入查詢條件如果是POST方式查詢,如何確保分頁之後能夠保持原先的查詢條件呢,我們可以給分頁類傳入引數,方法是給分頁類的parameter屬性賦值$count = $User->where($ma
SQL SERVER簡單的增,刪,查,改 語句 多表關聯查詢 (去掉關鍵列查詢)
insert into tb_UserInfo values('趙六',3,13512458679); --增加語句-- update tb_UserInfo set name='劉德華'where id=3; --修改語句-- delete from tb
用list集合做多條件中含日期範圍的查詢例項
private DataTable Query() { string sql = @"select * from sccld_view where 1=1 "; StringBuilder sb = new StringBuilder(sq
Hive 連線查詢操作(不支援IN查詢)
CREATE EXTERNAL TABLE IF NOT EXISTS a( telno STRING, other STRING ) PARTITIONED BY(day String) ROW FORMAT DELIMITED FIELDS TERMINATED
SQL Server中的模糊查詢(搜尋時經常使用)
零、碼仙勵志 只有不想做的,沒有做不到的 一、建庫和建表 create database scort use scort create table emp ( empno int primary key, ename nvarchar(10), age int )
JPA多條件複雜SQL動態分頁查詢
概述 ORM對映為我們帶來便利的同時,也失去了較大靈活性,如果SQL較複雜,要進行動態查詢,那必定是一件頭疼的事情(也可能是lz還沒發現好的方法),記錄下自己用的三種複雜查詢方式。 環境 springBoot IDEA2017.3.4 JDK8 pom.xml <?xml vers
elastic search6.2.2 實現用戶搜索記錄查詢(去重、排序)
replicas pos 結果 etime rep col cas rms idt elastic search6.2.2 實現搜索記錄查詢 ,類似新浪微博這種,同樣的搜索記錄後面時間點的會覆蓋前面的(主要思路:關鍵詞去重,然後按時間排序) 先創建索引 //我的搜索
Hibernate查詢(HQL——Hibernate Query Language)
增加 exceptio 連接查詢 有一個 子句 內容 ike 例子 範圍 HQL查詢 HQL提供了是十分強大的功能,它是針對持久化對象,用取得對象,而不進行update,delete和insert等操作。而且HQL是面向對象的,具備繼承,多態和關聯等特性。 from子句