一、ProviderDao层

   //智能标签案例
//智能标签多条件查询
public List<Provider> providerTest(@Param("proCode") String proCode, @Param("proName") String proName);
//智能标签进行修改
public int updatePro(Provider provider);
//查询范围(数组)
public List<Provider> getProInData(String [] proCodes);
//查询范围(集合)
public List<Provider> getProList(List<String> list);
//查询范围(多个集合)
public List<Provider> getProObject(@Param("proCodeList") List<Provider> proCodeList,@Param("proNameList") List<Provider> proNameList);

二、ProviderDao.xml小配置文件

<!--智能标签案例-->
<!--智能标签多条件查询-->
<select id="providerTest" resultType="com.marketsys.entity.Provider">
select * from smbms.smbms_provider
<where>
<if test="proCode!=null and proCode!=''">
and proCode like concat ('%',#{proCode},'%')
</if>
<if test="proName!=null and proName!=''">
and proName like concat ('%',#{proName},'%')
</if>
</where>
</select>
<!--智能标签进行修改-->
<update id="updatePro">
update smbms_provider
<trim prefix="SET" suffixOverrides=",">
<!--<set>-->
<if test="proCode!=null and proCode!=''">
proCode=#{proCode},
</if>
<if test="proName!=null and proName!=''">
proName=#{proName},
</if>
<!--</set>-->
</trim>
where id=#{id}
</update>
<!--查询范围(数组)-->
<select id="getProInData" resultType="com.marketsys.entity.Provider">
<!--select * from smbms.smbms_provider where proCode in ( ? , ? )-->
select * from smbms.smbms_provider where proCode in
<!--colletion 代表参数类型 open代表开头 close代表结尾 separator每一项数据分隔符 item代表每一项-->
<foreach collection="array" open="(" close=")" separator="," item="proCode">
#{proCode}
</foreach>
</select>
<!--查询范围(集合)-->
<select id="getProList" resultType="com.marketsys.entity.Provider">
select * from smbms.smbms_provider
<if test="list.size>0">
where proCode in
<!--colletion 代表参数类型 open代表开头 close代表结尾 separator每一项数据分隔符 item代表每一项-->
<foreach collection="list" open="(" close=")" separator="," item="proCode">
#{proCode}
</foreach>
</if>
</select>
<!--查询范围(多个集合)-->
<select id="getProObject" resultType="com.marketsys.entity.Provider">
select * from smbms.smbms_provider where proCode in
<!--colletion 代表参数类型 open代表开头 close代表结尾 separator每一项数据分隔符 item代表每一项-->
<foreach collection="proCodeList" open="(" close=")" separator="," item="proCode">
#{proCode.proCode}
</foreach>
and proName in
<foreach collection="proNameList" open="(" close=")" separator="," item="proName">
#{proName.proName}
</foreach>
</select>

三、test类

public class providerTest {
SqlSession sqlSession=MybatisUtil.getSqlSession();
ProviderDao mapper = sqlSession.getMapper(ProviderDao.class);
//智能标签多条件查询
@Test
public void getAllPro(){
List<Provider> providers = mapper.providerTest("GZ", "深圳");
for (Provider pro:providers) {
System.out.println(pro.getProName());
}
}
//智能标签进行修改
@Test
public void updatePro(){
Provider provider=new Provider();
provider.setId(10);
provider.setProCode("JS_GYS012");
provider.setProName("小南京火头军信息技术有限公司");
int count=mapper.updatePro(provider);
sqlSession.commit();
System.out.println(count);
}
//查询范围(数组)
@Test
public void getInPro(){
List<Provider> providers = mapper.getProInData(new String[]{"BJ_GYS001","BJ_GYS002"});
for (Provider pro:providers) {
System.out.println(pro.getProName());
}
}
//查询范围(集合)
@Test
public void getProList(){
List<String> list=new ArrayList<>();
list.add("BJ_GYS002");
list.add("BJ_GYS001");
List<Provider> providerData=mapper.getProList(list);
for (Provider pro:providerData) {
System.out.println(pro.getProName());
}
}
//查询范围(多个集合)
@Test
public void getProObject(){
List<Provider> list =new ArrayList<Provider>();
Provider provider=new Provider();
provider.setProCode("BJ_GYS002");
list.add(provider); List<Provider> list2 =new ArrayList<Provider>();
Provider provider2=new Provider();
provider2.setProName("北京纳福尔食用油有限公司");
list2.add(provider2);
List<Provider> providerData=mapper.getProObject(list,list2);
for (Provider pro:providerData) {
System.out.println(pro.getProName());
}
}
}

Mybatis智能标签的更多相关文章

  1. MyBatis 智能标签

    使用Where 只能标签 检索部门Y2162Dept 数据库已存在表Y2162Dept 实现动态查询 Deptno Deptname 赋值 不赋值 不赋值 赋值 赋值 赋值 不赋值 不赋值 <! ...

  2. MyBatis智能标签!

    if 语句 <select id="getOne" resultType="com.mybatis.entity.SmbmsProviderEntity" ...

  3. MyBatis的一系列问题的处理(遍历Map集合和智能标签和属性和字段不一样的解决办法 和sql片段)(三)

    一.字段名与属性名(数据库的名字)不一样怎么办? 方案一:在小配置中配置一个resultMapper <!--方案一:resultMapper 字段名与属性名不一致 --> <res ...

  4. mybatis高级(2)_数据库中的列和实体类不匹配时的两种解决方法_模糊查询_智能标签

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  5. MyBatis系列四 之 智能标签进行查询语句的拼接

    MyBatis系列四 之 智能标签进行查询语句的拼接 使用Foreach进行多条件查询 1.1 foreach使用数组进行多条件查询 在MyBatis的映射文件中进行如下配置 <!--根据数组进 ...

  6. SSM-MyBatis-14:Mybatis中智能标签

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 谈论到智能,有什么要想的没有? 我下面放张图 相信都见过这个吧,你在之前没有学习过框架的时候怎么写的,动态sq ...

  7. 【Java EE 学习 79 下】【动态SQL】【mybatis和spring的整合】

    一.动态SQL 什么是动态SQL,就是在不同的条件下,sql语句不相同的意思,曾经在“酒店会员管理系统”中写过大量的多条件查询,那是在SSH的环境中,所以只能在代码中进行判断,以下是其中一个多条件查询 ...

  8. MyBatis初学者配置

    小配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC &qu ...

  9. mybatis大框架

    MyBatis   开源的数据持久化层框架 实体类与SQL语句之间建立映射关系 一:MyBatis前身是IBatis,本是Apache的一个开源的项目, 基于SQL语法,简单易学 ,是耦合度降低,方便 ...

随机推荐

  1. 二、VUE项目BaseCms系列文章:项目目录结构介绍

    一. 目录结构截图 二. 目录结构说明 - documents    存放项目相关的文档文件 - api   api 数据接口目录 - assets    资源文件目录 - components   ...

  2. CODING 受邀参与 DevOps 标准体系之系统和工具&技术运营标准技术专家研讨会

    2019 年 5 月 24-25 日,国内领先的一站式 DevOps 解决方案供应商 CODING 作为腾讯云的深度合作伙伴,受邀参加在成都举行的由 TC608 云计算标准和开源推进委员会主办,中国信 ...

  3. 微信小程序框架部署:mpvue+typescript

    开发前提: 1.在微信公众平台注册申请 AppID 2.安装开发者工具https://developers.weixin.qq.com/miniprogram/dev/devtools/downloa ...

  4. linux安装数据时报错Could not execute auto check for display colors using command /usr/bin/xdpyinfo.

    在redhat6.5上安装Oracle时,最后使用oracle用户执行runInstaller 报错如下,无法连接到安装有xmanager的windows服务器,也就无法图形化安装oracle ora ...

  5. django-xadmin自定义widget插件(自定义详情页字段的显示样式)

    有时候我们想要修改xadmin详情页字段的显示方式,比如django默认的ImageField在后台显示的是image的url,我们更希望看到image的缩略图:再比如django将多对多字段显示为多 ...

  6. bayaim——达梦数据库安装DM7-单实例-Centos7.txt

    bay——安装_达梦DM7-单实例-Centos7.txt IP:10.20.100.22 ---------------------------------------------1.下载 注意:要 ...

  7. nvidia-smi 常用命令使用手册

    # 定时刷新 nvidia-smi 显示的结果 nvidia-smi -l 1  # 以 1 秒的频率进行刷新 nvidia-smi -lms 1 #以 1 毫秒的频率进行刷新 #保持更新,更多内容请 ...

  8. spring = servlet + 依赖管理 + 业务逻辑

    spring = servlet + 依赖管理 + 业务逻辑

  9. 03-JVM-垃圾回收算法

    1.JVM内存分配与回收 1.1 对象优先在Eden区进行分配 堆中存储的对象,大多数情况下优先存储在Eden区,当Eden区存满没有足够的空间的时候,虚拟机将进行一次minorGC.当满足一定条件以 ...

  10. 关于javascript中变量及函数的提升

    javascript中变量以及函数的提升,在我们平时的项目中其实还是挺常用的,尤其是大型项目中,不知不觉就会顺手添加一些变量,而有时候自己的不小心就会酿成一些不必要错误,趁有时间整理一下自己对于js中 ...