Mybatis智能标签
一、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智能标签的更多相关文章
- MyBatis 智能标签
		使用Where 只能标签 检索部门Y2162Dept 数据库已存在表Y2162Dept 实现动态查询 Deptno Deptname 赋值 不赋值 不赋值 赋值 赋值 赋值 不赋值 不赋值 <! ... 
- MyBatis智能标签!
		if 语句 <select id="getOne" resultType="com.mybatis.entity.SmbmsProviderEntity" ... 
- MyBatis的一系列问题的处理(遍历Map集合和智能标签和属性和字段不一样的解决办法   和sql片段)(三)
		一.字段名与属性名(数据库的名字)不一样怎么办? 方案一:在小配置中配置一个resultMapper <!--方案一:resultMapper 字段名与属性名不一致 --> <res ... 
- mybatis高级(2)_数据库中的列和实体类不匹配时的两种解决方法_模糊查询_智能标签
		<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ... 
- MyBatis系列四 之 智能标签进行查询语句的拼接
		MyBatis系列四 之 智能标签进行查询语句的拼接 使用Foreach进行多条件查询 1.1 foreach使用数组进行多条件查询 在MyBatis的映射文件中进行如下配置 <!--根据数组进 ... 
- SSM-MyBatis-14:Mybatis中智能标签
		------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 谈论到智能,有什么要想的没有? 我下面放张图 相信都见过这个吧,你在之前没有学习过框架的时候怎么写的,动态sq ... 
- 【Java EE 学习 79 下】【动态SQL】【mybatis和spring的整合】
		一.动态SQL 什么是动态SQL,就是在不同的条件下,sql语句不相同的意思,曾经在“酒店会员管理系统”中写过大量的多条件查询,那是在SSH的环境中,所以只能在代码中进行判断,以下是其中一个多条件查询 ... 
- MyBatis初学者配置
		小配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC &qu ... 
- mybatis大框架
		MyBatis 开源的数据持久化层框架 实体类与SQL语句之间建立映射关系 一:MyBatis前身是IBatis,本是Apache的一个开源的项目, 基于SQL语法,简单易学 ,是耦合度降低,方便 ... 
随机推荐
- 百度大脑UNIT3.0详解之语音语义一体化方案
			在电话客服场景里,用户和机器人交流的过程中,经常会出现沉默.打断机器人.噪声等情况,机器人在应对这些异常情况的时候,需要语音和语义理解技术进行处理,才能实现用户和机器人的流畅交谈.而这些能力的获取与应 ... 
- 数据库三,exec内置函数
			数据库三,exec内置函数 一.数据库查询与执行顺序 必备知识 查询语句的基本操作 - select - from - where - group by - having - distinct - o ... 
- MongoDB 中聚合统计计算--$SUM表达式
			我们一般通过表达式$sum来计算总和.因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种:1,统计符合条件的所有文档的某个字段的总和:2,统计每个文档的数组字段里面的各个数据值的和. ... 
- redis cluster集群动态伸缩--删除主从节点
			目标:从集群中剔除一组主从(5007,5008) 经过上一节增加5007,5008主从服务节点后,目前集群的情况是这样的: b3363a81c3c59d57143cd3323481259c044e66 ... 
- 如何使用第三方ui库vant-weapp
			如何使用第三方ui库vant-weapp 1==>创建文件夹demo 2==> 在小程序 中打开 注意 要先在小程序中打开 如果要想在小程序的开发工具中打开某一个 文件夹 要么是空文件夹 ... 
- Java IO系列之 ByteArrayInputStream
			http://www.cnblogs.com/skywang12345/p/io_02.html 
- C# 对 Excel 的相关操作
			C# 对Excel的操作 学习自: 教练辅导 C# 对Excel的读取操作 我们需要额外添加引用: References 搜索Excel 这样我们的基础就添加完成了. 并且在using 中添加: us ... 
- Java连载54-两种单例模式、接口详解
			一.单例模式分为两种: (1)饿汉式单例:在类加载阶段就创建了一个对象. (2)懒汉式单例:用对对象的时候才会创建对象.(连载53中例子就是懒汉式) 饿汉式举例: package com.bjpowe ... 
- 分布式应用监控: SkyWalking 快速接入实践
			分布式应用,会存在各种问题.而要解决这些难题,除了要应用自己做一些监控埋点外,还应该有一些外围的系统进行主动探测,主动发现. APM工具就是干这活的,SkyWalking 是国人开源的一款优秀的APM ... 
- PHP bcpow BC数学函数
			定义和用法 bcpow - 任意精度数字的乘方 版本支持 PHP4 PHP5 PHP7 支持 支持 支持 语法 bcpow( string $left_operand , string $right_ ... 
