固定时间范围查询

    <select id="selectPaidList" resultType="com.hand.htms.ifp.entity.IfpShipment">
SELECT
*
FROM
ifp_shipment t1
WHERE (t1.creation_date > #{beginDate} and t1.creation_date&lt;#{endDate})
and ( t1.shipper_pay_status = 'PAID' or t1.shipper_pay_status = 'PARTIALPAID' )
<if test="tenantId !=null and tenantId != 1">
and t1.tenant_id = #{tenantId}
</if>
</select>
  <select id="selectShipment" resultType="com.hand.htms.ifp.entity.IfpShipment">
SELECT
*
FROM
ifp_shipment t1
WHERE t1.shipment_status =#{status}
<if test="status != null and status == 'TO_LOAD'">
and (t1.creation_date > #{beginDate} and t1.creation_date&lt;#{endDate})
</if>
<if test="status != null and status == 'TO_UNLOAD'">
and (t1.load_date > #{beginDate} and t1.load_date&lt;#{endDate})
</if>
<if test="status != null and status == 'TO_SIGN'">
and (t1.unload_date > #{beginDate} and t1.unload_date&lt;#{endDate})
</if>
<if test="status != null and status == 'SIGN'">
and (t1.sign_date > #{beginDate} and t1.sign_date&lt;#{endDate})
</if>
<if test="tenantId !=null and tenantId != 1">
and t1.tenant_id = #{tenantId}
</if>
</select>

模糊查询

    <select id="selectlist" resultType="com.hand.htms.ifp.dto.IfpShipmentAppDTO">
select
<include refid = "BaseSql"/>
from
ifp_shipment iil
where
iil.driver_gid = #{driverGid}
and
iil.shipment_status = #{shipmentStatus}
<if test="xid != null">
<bind name="xidLike" value="'%'+xid+'%'"/>
and iil.xid like #{xidLike}
</if>
<if test="vehicleGid != null">
and iil.vehicle_gid = #{vehicleGid}
</if>
<if test="sourceName != null">
<bind name="sourceNameLike" value="'%'+sourceName+'%'"/>
and iil.source_name like #{sourceNameLike}
</if>
<if test="sourcePhone != null">
<bind name="sourcePhoneLike" value="'%'+sourcePhone+'%'"/>
and iil.source_phone like #{sourcePhoneLike}
</if>
<if test="destName != null">
<bind name="destNameLike" value="'%'+destName+'%'"/>
and iil.dest_name like #{destNameLike}
</if>
<if test="destPhone != null">
<bind name="destPhoneLike" value="'%'+destPhone+'%'"/>
and iil.dest_phone like #{destPhoneLike}
</if>
</select>

精确查询

    <select id="listProject" resultType="com.inja.spot.domain.entity.Project">
SELECT
sbp.project_name,
sbp.factory_meaning,
sbp.project_code,
sbp.project_id,
sbp.remark,
delete_flag
FROM
spot_bd_project sbp
WHERE
tenant_id = #{organizationId}
AND
delete_flag = 'N'
<if test="projectName != null and projectName != ''">
and sbp.project_name like concat('%',#{projectName},'%')
</if>
<if test="projectCode != null">
and sbp.project_code = #{projectCode}
</if>
<if test="factoryMeaning != null and factoryMeaning != ''">
and sbp.factory_meaning like concat('%',#{factoryMeaning},'%')
</if>
ORDER BY sbp.creation_date DESC
</select>

String型需要校验不为null和不为空,Long型只需要校验不为null;需要使用concat拼接,否则会有SQL注入的风险。

连表查询

https://blog.csdn.net/Java_is_NO_1/article/details/117933024

insert操作

   <!--id属性:表示映射的接口中方法的名称,直接标签的内容部来编写SQL语句-->
<!--useGeneratedKeys="true"表示开启某个字段的值递增(大部分都是主键递增)
keyProperty="uid"表示将表中哪个字段进行递增
-->
<insert id="insert" useGeneratedKeys="true" keyProperty="aid">
INSERT INTO t_address (
uid, `name`, province_name, province_code, city_name, city_code, area_name, area_code, zip,
address, phone, tel,tag, is_default, created_user, created_time, modified_user, modified_time
) VALUES (
#{uid}, #{name}, #{provinceName}, #{provinceCode}, #{cityName}, #{cityCode}, #{areaName},
#{areaCode}, #{zip}, #{address}, #{phone}, #{tel}, #{tag}, #{isDefault}, #{createdUser},
#{createdTime}, #{modifiedUser}, #{modifiedTime}
)
</insert>

单一参数的情况

    <select id="listRegion" resultType="com.inja.spot.domain.entity.Region">
SELECT
sbr.region_id,
sbr.country_name,
sbr.country_id,
sbr.region_name,
sbr.prov_name,
sbr.prov_id,
sbr.city_name,
sbr.city_id,
sbr.region_meaning
FROM
spot_bd_region sbr
WHERE
sbr.delete_flag = 'N'
<if test="_parameter != null and _parameter != ''">
and sbr.region_name like concat('%',#{_parameter },'%')
</if>
ORDER BY sbr.creation_date DESC
</select>

不进入Mapper查询

     if (null != lovVlaues && lovVlaues.size() > 0) {
//将lovVlaues中的value值(租户Num)取出,并进行非空校验
List<String> tags = lovVlaues.stream().filter(lovValueDTO -> lovValueDTO.getTag() != null)
.map(lovValueDTO -> lovValueDTO.getTag()).collect(Collectors.toList());
if (null != tags && tags.size() > 0) {
//取自营店铺的租户id
sellerTenantId = Long.parseLong(tags.get(0));
//取自营店铺(卖家)店铺信息
sellerShop = shopRepository.selectByCondition(Condition.builder(Shop.class)
.andWhere(Sqls.custom().andEqualTo(Shop.FIELD_TENANT_ID, sellerTenantId)).build())
.stream().findFirst().orElse(null);
}
}

值集示例

SELECT
ifp_shipment.id,
ifp_shipment.xid,
ic.name as shipper_name,
id.name as driver_name,
iv.lpn
FROM
ifp_shipment
left join ifp_company ic on ifp_shipment.shipper_company_id = ic.id
left join ifp_driver id on ifp_shipment.driver_gid = id.id
left join ifp_vehicle iv on ifp_shipment.vehicle_gid = iv.id
WHERE
1=1
<if test='organizationId != null'>
and ifp_shipment.tenant_id = #{organizationId}
</if>
<if test='xid != null and xid != ""'>
AND ifp_shipment.xid LIKE concat('%', concat(#{xid}, '%'))
</if>
<if test='shipperName!= null and shipperName!= ""'>
AND ic.name LIKE concat('%', concat(#{shipperName}, '%'))
</if>
<if test='driverName!= null and driverName!= ""'>
AND id.name LIKE concat('%', concat(#{driverName}, '%'))
</if>

selectOptional查询



   @Override
public ReturnT execute(final Map<String, String> map, final SchedulerTool tool) {
IfpShipment ifpShipment = new IfpShipment();
Criteria criteria = new Criteria(ifpShipment);
criteria.setWhereSql("A.pro_platform_shipment_status = 'N' AND A.vehicle_status = 'normal' AND (A.locating_information_status = 'normal' or A.locating_information_status = 'abnormal') AND A.unload_time_status = 'normal' AND A.unload_quantity_status = 'normal'");
List<IfpShipment> ifpShipmentList = ifpShipmentService.selectOptional(ifpShipment,criteria);
if(!CollectionUtils.isEmpty(ifpShipmentList)){
cuzIfpShipmentService.shipmentListPush(ifpShipmentList);
}
return ReturnT.SUCCESS;
}

【JAVA基础】Mybatis示例的更多相关文章

  1. Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例

    Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇文章的小伙伴,详细你已经有一定的Java ...

  2. Java基础-SSM之Spring和Mybatis整合案例

    Java基础-SSM之Spring和Mybatis整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   在之前我分享过mybatis和Spring的配置案例,想必大家对它们的 ...

  3. Java基础-SSM之mybatis的统计函数和分页查询

    Java基础-SSM之mybatis的统计函数和分页查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  4. Java基础-SSM之mybatis一对一关联

    Java基础-SSM之mybatis一对一关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbands和wifes表并建 ...

  5. Java基础-SSM之mybatis多对多关联

    Java基础-SSM之mybatis多对多关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表) 1>.创建teas,stus,links表 u ...

  6. Java基础-SSM之mybatis一对多和多对一关系映射

    Java基础-SSM之mybatis一对多和多对一关系映射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建customers表: ...

  7. Java基础-SSM之mybatis的树形控件(自关联)

    Java基础-SSM之mybatis的树形控件(自关联) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表) 1>.创建areas表: use y ...

  8. Java基础-SSM之mybatis一对一外键关联

    Java基础-SSM之mybatis一对一外键关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbandsfk和wife ...

  9. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  10. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

随机推荐

  1. C语言编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。

    /* 开发者:慢蜗牛 开发时间:2020.5.28 程序功能:计算最大公约数和最小公倍数 */ #include<stdio.h> #include<math.h> int m ...

  2. C#Winform使用NPOI获取word中的数据

    公众号「DotNet学习交流」,分享学习DotNet的点滴. 需求 想要获取word里面的内容,如下图所示: 有一张表和一段文本,并将它们存入数据库或者Excel. 步骤 添加NPOI的库,如下图所示 ...

  3. 自学day7 数组

    typora-copy-images-to: media 数组 一.概念 对象中可以通过键值对存储多个数据,且数据的类型是没有限制的,所以通常会存储一个商品的信息或一个人的信息: var obj = ...

  4. Python 中的单下划线和双下划线

    哈喽大家好,我是咸鱼 当我们在学习 Python 的时候,可能会经常遇到单下划线 _ 和双下划线 __ 这两种命名方式 单下划线 _ 和双下划线 __ 不仅仅是只是一种简单的命名习惯,它们在 Pyth ...

  5. idea配置servlet项目找不到servlet jar包爆红【解决办法】

    1.看你的implements 后面的Servlet是否大写了 2.大部分原因就是缺少servlet-api jar包或者idea找不到jar包 如果你是爆红的,那么问题就在这里,点击-号,重新添加这 ...

  6. HTML中的常用的特殊字符以及所有特殊字符

    ## HTML常用特殊字符以下是HTML中常用的特殊符号及其编码: | 特殊符号 | 编码 | 描述 || --- | --- | --- || `<` | `&lt;` | 小于号 | ...

  7. .NET企业应用安全开发动向-概览

    太长不读版:试图从安全的全局视角触发,探讨安全的重要性,讨论如何识别安全问题的方法,介绍.NET提供的与安全相关的基础设施,以及一些与时俱进的安全问题,为读者建立体系化的安全思考框架. 引言 关于&q ...

  8. 解决报错:Java 8 date/time type `java.time.Duration` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

    1.错误信息: Java 8 date/time type java.time.Duration not supported by default: add Module "com.fast ...

  9. JavaScript 文件优化指南

    本文将探讨实用的 JavaScript 文件优化技术.如何处理与 JavaScript 文件相关的性能问题以及帮助优化过程的工具.你将获得提升web应用程序速度的相关知识,从而为你的用户提供无缝体验. ...

  10. Oracle数据字典(各种视图、表)

    数据字典是存放整个数据库实例重要信息的一组表,这些数据字典大部分都是SYS用户所有. 数据字典的构成 Oracle数据字典名称由前缀和后缀组成,使用下画线"_"连接.其代表的含义如 ...