Mybatis Mapper

何用Java8 Stream API进行数据抽取与收集

十年热恋 提交于 2020-11-16 02:45:13
原稿于3.2日发布,然而事情并没完,我发现必须得补充一个常见的坑,为了防止大家采坑,我在更新了本文的后两段。 上一篇中我们通过一个实例看到了Java8 Stream API 相较于传统的的Java 集合操作的简洁与优势,本篇我们依然借助于一个实际的例子来看看Java8 Stream API 如何抽取及收集数据。 备注:上一篇内容: 如何用Java8 Stream API找到心仪的女朋友 目标 & 背景 我们以“处理订单数据”为例,假设我们的应用是一个分布式应用,有"订单应用","物流应用","商品应用”等都是独立的服务。本次我们的目的需要展示订单列表完整数据: 1.查询订单列表。 2.批量查询物流信息。 3.将物流信息填充到订单主信息中。 假设我们定义了一个订单类,具有几个关键的属性:订单号,状态,订单价,快递信息。如下所示: class Order{ String orderSeq; String status; double totalPrice; String expressInfo; // 省略get,set及hashCode等方法 } 我们定义了一个快递信息类,几个关键的属性:订单号,物流公司,物流单号,物流状态。如下所示: class ExpressInfo{ String orderSeq; String expressName; String expressNo;

Mybatis ResultMap多表映射DTO

旧城冷巷雨未停 提交于 2020-10-24 12:26:37
步骤: 1:构建DT package com.steak.system.pojo.dto; public class ApplyDTO { private Integer applyId; //申请书的ID 属于申请表(sys_apply) private String selfIntroduction; //自我介绍 属于申请表(sys_apply) private String applyTime; //申请时间 属于申请表(sys_apply) private String userName; //申请人,属于用户表(sys_user) private String collegeName; //二级学院名称,属于二级学院表(sys_college) private String recruitName; //招聘书标题 , 属于招聘表(sys_recruit) private String status; //申请状态 属于申请表(sys_apply } 2:创建mybatis Mapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3

mybatis mapper在使用in查询的时候报一个比较错误

北慕城南 提交于 2020-10-14 13:53:27
查询代码如下: <select id="getDeviceIds" resultMap="deviceId"> select id, device_id from prod_freezer <where> <if test="companyId != '' and companyId != null"> and company_id = #{companyId} </if> <if test="ids!= '' and ids != null"> and id in <foreach collection="ids" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </if> </where> </select> 报如下的错 Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java.lang.String 原来if test的表达式写的不对,传入ids是ArrayList,不能当成字串比较,直接用 ids!=null 判断即可。 来源: oschina 链接: https://my.oschina.net/jenqz/blog/4306887

二、MyBatis Mapper Bean初始化深度解析

£可爱£侵袭症+ 提交于 2020-04-14 20:55:48
【推荐阅读】微服务还能火多久?>>> 一、问题引出 在mybatis中,mapper都是像以下一个个的接口: public interface UserMapper { long countByExample(UserDTOExample example); int deleteByExample(UserDTOExample example); int deleteByPrimaryKey(Integer id); int insert(UserDTO record); int insertSelective(UserDTO record); List<UserDTO> selectByExample(UserDTOExample example); UserDTO selectByPrimaryKey(Integer id); int updateByExampleSelective(@Param("record") UserDTO record, @Param("example") UserDTOExample example); int updateByExample(@Param("record") UserDTO record, @Param("example") UserDTOExample example); int

Mybatis获取插入记录的自增长ID

◇◆丶佛笑我妖孽 提交于 2020-03-06 16:39:18
使用Mybatis插入数据时,返修所插入数据的id。 在Mybatis mapper.xml文件中,在插入方法的头部添加 属性“useGeneratedKeys”和“keyProperty”,其中 keyProperty是Java对象的属性名,而不是表格的字段名 。 <insert id="insert" parameterType="com.sale" useGeneratedKeys="true" keyProperty="id"> insert into sale(name) values(#{name}) </insert> Mybatis执行完插入语句后,自动将自增长值赋值给对象sale的属性id。因此,可通过sale对应的getter方法获取. int count = saleService.insert(sale); int id = sale.getId(); //获取到的即为新插入记录的ID 【注意事项】 1.Mybatis Mapper 文件中,“useGeneratedKeys”和“keyProperty”必须添加,而且keyProperty一定得和java对象的属性名称一直,而不是表格的字段名 2.java Dao中的Insert方法,传递的参数必须为java对象,也就是Bean,而不能是某个参数。 来源: oschina 链接: https://my

【Note_01】通用 mapper

拜拜、爱过 提交于 2020-02-27 22:53:04
一、通用 mapper 简介 最初我们手写 Mybatis 的 mapper.xml 文件,然后使用 Mybatis-generator 逆向工程生成 mapper.xml 文件,再发展到使用通用 mapper,支持自动生成 EntityMapper、mapper.xml 文件。 二、入门 Demo 1.引入依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>最新版本</version> </dependency> 2.配置 Mybatis.xml 文件 <!-- 与 Mybatis 配置的区别仅仅是将 class="org.xxx" 改为了 class="tk.xxx" --> <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="扫描包名"/> <!-- 其他配置 --> </bean> 3.实体类配置 public class Entity implements Serializable { @Id private Long id; private String name; //setter 和 getter

springboot多数据源整合mybatis中出现的Invalid bound statement(not found)的问题

徘徊边缘 提交于 2019-12-20 19:10:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> springboot多数据源整合mybatis时,只有一个数据源生效,哪个数据源为primary就可以正常访问,但是另一个数据源访问就会报错。 Invalid bound statement(not found) 之前代码中mybatis mapper路径每个数据源配置各自的mapper目录 bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/mysql-1/*.xml")); 这样第二个数据源访问报错 应该修改为: bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*.xml")); 来源: oschina 链接: https://my.oschina.net/u/2000675/blog/2254238

mybatis mapper.xml文件中 小于"<" 和 大于">" 的问题

核能气质少年 提交于 2019-12-16 15:42:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 第一种写法: 转义 原符号 < <= > >= & ' " 替换符号 < <= > >= & ' " 例如:sql如下: create_date_time >= #{startTime} and create_date_time <= #{endTime} 第二种写法: 大于等于 <![CDATA[ >= ]]> 小于等于 <![CDATA[ <= ]]> 例如:sql如下: create_date_time <![CDATA[ >= ]]> #{startTime} and create_date_time <![CDATA[ <= ]]> #{endTime} 来自: https://www.cnblogs.com/wdpnodecodes/p/8109112.html 来源: oschina 链接: https://my.oschina.net/u/2669637/blog/1924969

MyBatis mapper.xml处理sql中的 大于,小于,大于等于,小于等于

喜夏-厌秋 提交于 2019-12-16 15:42:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 今天在写 mapper.xml 使用 <= ,>= 居然编译报错,第一次遇到,网上查询了解决方法: 进行转义: 原符号 < <= > >= & ' " 替换符号 &lt; &lt;= &gt; &gt;= &amp; &apos; &quot; 注意 : between 不包括等于 来源: oschina 链接: https://my.oschina.net/u/3644969/blog/1934843

mybatis mapper 映入另一个mapper 文件内容

帅比萌擦擦* 提交于 2019-12-09 16:19:27
MyBatis引入外部文件的resultMap 一.使用 1.有resultMap属性的标签都可以使用 <select resultMap="命名空间.resultMap的id"></select> <association resultMap="命名空间.resultMap的id"></association> <collection resultMap="命名空间.resultMap的id"></collection> 2.某些标签的extends熟悉应该也能使用(猜测的,待验证) https://blog.csdn.net/lxxxzzl/article/details/43833903 <resultMap extends="命名空间.resultMap的id"></resultMap> public class CocTreeNode extends CocBean implements TreeNode<CocTreeNode> { private String level1, level2; public void setLevel1(String level1){...} public void setLevel2(String level2){...} public String getLevel1(){...} public String getLevel1()