返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis配置对象包含对象以及List的方式
  • 882
分享到

mybatis配置对象包含对象以及List的方式

2024-04-02 19:04:59 882人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

mybatis配置对象包含对象及List 这里隐藏get set方法 public class BatchManagerViewVo implements Serializab

mybatis配置对象包含对象及List

这里隐藏get set方法


public class BatchManagerViewVo  implements Serializable{
 
	 
	private static final long serialVersionUID = 1L; 
	private List<ResourcesItemDto> resourceItem;	
	private List<PriceInfoDto> priceInfo;
	
	
    @Id
    @Column(name = "ID")
    private String id; 
    public List<ResourcesItemDto> getResourceItem() {
		return resourceItem;
	}
	public void setResourceItem(List<ResourcesItemDto> resourceItem) {
		this.resourceItem = resourceItem;
	}
	public List<PriceInfoDto> getPriceInfo() {
		return priceInfo;
	}
	public void setPriceInfo(List<PriceInfoDto> priceInfo) {
		this.priceInfo = priceInfo;
	}
 
	
    @Column(name = "BATCH_NAME")
    private String batchName;
 
    
    @Column(name = "MEMBER_NAME")
    private String memberName;
 
    
    @Column(name = "MEMBER_CODE")
    private String memberCode;
 
    
    @Column(name = "BATCH_STATE")
    private String batchState;
 
    
    @Column(name = "BATCH_DATE")
    private Date batchDate;
 
    
    @Column(name = "END_TIME")
    private Date endTime;
 
    
    @Column(name = "START_TIME")
    private Date startTime;
 
    
    @Column(name = "BOND_PAYMENT_STATUS")
    private String bondPaymentStatus;
 
    
    @Column(name = "SETTLEMENT_MODE")
    private String settlementMode;
 
    
    @Column(name = "INVALID_DATE")
    private Date invalidDate;
 
    
    @Column(name = "AUDIT_OPERATOR")
    private String auditOperator;
 
    
    @Column(name = "STOP_OPERATOR")
    private String stopOperator;
 
    
    @Column(name = "INVALID_OPERATOR")
    private String invalidOperator;
 
    
    @Column(name = "APPLY_OPERATOR")
    private String applyOperator;
 
    
    @Column(name = "ANNOUNCEMENT_DAY")
    private Date announcementDay;
 
    
    @Column(name = "BID_DAY")
    private Date bidDay;
 
    
    @Column(name = "BUYER_DEPOSIT")
    private BigDecimal buyerDeposit;
 
    
    @Column(name = "SELLER_BOND")
    private BigDecimal sellerBond;
 
    
    @Column(name = "FORCED_TERMINATION_REASON")
    private String forcedTerminationReason;
 
    
    @Column(name = "AUDIT_STOP_REASON")
    private String auditStopReason;
 
    
    @Column(name = "AUDIT_STOP_DATE")
    private Date auditStopDate;
 
    
    @Column(name = "APPLY_STOP_REASON")
    private String applyStopReason;
 
    
    @Column(name = "APPLY_STOP_DATE")
    private Date applyStopDate;
 
    
    @Column(name = "REFUSE_AUDIT_REASON")
    private String refuseAuditReason;
 
    
    @Column(name = "AUDIT_TIME")
    private Date auditTime;
 
    
    @Column(name = "IS_DIRECTIONAL_BID")
    private String isDirectionalBid;
 
    
    @Column(name = "DIRECTIONAL_REASON")
    private String directionalReason;
 
    
    @Column(name = "IS_SEND_MESSAGE")
    private String isSendMessage;
 
    
    @Column(name = "IS_SHOW_DEAL_PRICE")
    private String isshowDealPrice;
 
    
    @Column(name = "IS_SHOW_ORDER_PRICE")
    private String isShoWorderPrice;
 
    
    @Column(name = "IS_SHOW_DEAL_MEMBER")
    private String isShowDealMember;
 
    
    @Column(name = "MINIMUM_RESPONSE")
    private String minimumResponse;
 
    
    @Column(name = "ISSHOWDEALRESULT")
    private String isshowdealresult;
 
    
    @Column(name = "BIDDING_TYPE")
    private String biddingType;
 
    
    @Column(name = "OFFER_TYPE")
    private String offerType;
 
    
    @Column(name = "IS_SHOW_STARTING_PIRCE")
    private String isShowStartingPirce;
 
    
    @Column(name = "DOAMIN")
    private String doamin;
 
    
    @Column(name = "EDITMENT")
    private String editment;
} 

 <select id="findSellerBatchInfo" parameterType="com.ouyeel.chem.bdt.search.BatchManagerSerachModel" resultMap="batchInfoMap">
  	select 
	  	batch.ID,
	  	batch.BATCH_NAME,
	  	batch.BATCH_STATE batch_state,
	  	batch.START_TIME batch_start_time,
	  	batch.END_TIME batch_end_time,
	  	batch.IS_DIRECTIONAL_BID batch_is_direc,
	  	batch.BUYER_DEPOSIT batch_buyer_deposit,
	  	batch.BIDDING_TYPE batch_bidding_type,
	  	batch.OFFER_TYPE batch_offer_type,
	  	batch.BATCH_DATE batch_date,
	  	batch.ANNOUNCEMENT_DAY batch_announ,
	  	batch.BID_DAY batch_bid_day,
	  	price.id price_id, 
	  	price.STARTING_PIRCE price_starting_price,
	  	price.BIDDING_GRADIENT price_bidding_gradient,
	  	price.TAX_RATE price_tax_rate,
	  	price.TAX_FREE_PRICE price_tax_free_price,
	  	price.RESERVE_PRICE price_reserve_price,
	  	item.PRODUCT_NAME item_product_name,
	  	item.PRODUCT_NO item_product_no,
	  	item.PACKAGES item_packages,
	  	item.ORIGIN_PLACE item_origin_place,
	  	item.WAREHOUSE_NAME item_warehouse,
	  	item.PIECE_UNIT item_piece_unit,
	  	item.TRADING_WEIGHT item_trading_weight
  	from bdt_batch batch
  	left join bdt_resources_item item on item.batch_id = batch.id 
	left join bdt_price_info price on price.batch_id = batch.id and item.id = price.item_id  
	where batch.member_code = #{memberCode,jdbcType=VARCHAR}<!--  and batch.id = 'P170508005' -->
	  	<if test="id != null and id != '' ">
	  	and batch.id like '%${id}%'
	  	</if>
	  	<if test="startTime != null and startTime != '' ">
	  	and batch.batch_date >= #{startTime,jdbcType=TIMESTAMP}
	  	</if>
	  	<if test="endTime != null and endTime != '' ">
	  	and batch.batch_date <= #{endTime,jdbcType=TIMESTAMP}
	  	</if>
	  	<if test="batchState != null and batchState != '' ">
	  	and batch.batch_state = #{batchState,jdbcType=VARCHAR}
	  	</if>
		<if test="sidx != null and sidx != '' ">
	  	order by batch.${sidx} ${sord}
	  	</if>
	  	<if test="sidx == null or sidx ==''">
	  	order by batch.id desc
	  	</if>
  </select>

<resultMap type="com.ouyeel.chem.bdt.entity.vo.BatchManagerViewVo" id="batchInfoMap">
        <!-- association字面意思关联,这里只专门做一对一关联; property表示是com.mybatis.bean.StudentTemp中的属性名称; 
            javaType表示该属性是什么类型对象 -->
        <!-- property 表示com.mybatis.bean.Class中的属性; column 表示表中的列名 -->
        <id property="id" column="id"/>
	    <result property="batchName" column="batch_name"/>
	    <result property="startTime" column="batch_start_time"/>
	    <result property="endTime" column="batch_end_time"/>
	    <result property="isDirectionalBid" column="batch_is_direc"/>
	    <result property="batchState" column="batch_state"/>
	    <result property="buyerDeposit" column="batch_buyer_deposit"/>
	    <result property="biddingType" column="batch_bidding_type"/>
	    <result property="offerType" column="batch_offer_type"/>
	    <result property="batchDate" column="batch_date"/>
	    <result property="announcementDay" column="batch_announ"/>
	    <result property="bidDay" column="batch_bid_day"/>
        <!-- property表示集合类型属性名称,ofType表示集合中的对象是什么类型 -->
        <collection property="priceInfo" ofType="com.ouyeel.chem.bdt.entity.PriceInfoDto">
            <id property="id" column="price_id"/>
       		<result property="startingPirce" column="price_starting_price"/>
       		<result property="biddingGradient" column="price_bidding_gradient"/>
       		<result property="taxRate" column="price_tax_rate"/>
       		<result property="taxFreePrice" column="price_tax_free_price"/>
       		<result property="reservePrice" column="price_reserve_price"/>
        </collection>
       <!--  property表示集合类型属性名称,ofType表示集合中的对象是什么类型 -->
        <collection property="resourceItem" ofType="com.ouyeel.chem.bdt.entity.ResourcesItemDto">
       		<result property="productName" column="item_product_name"/>
       		<result property="productNo" column="item_product_no"/>
       		<result property="packages" column="item_packages"/>
       		<result property="originPlace" column="item_origin_place"/>
       		<result property="warehouseName" column="item_warehouse"/>
       		<result property="pieceUnit" column="item_piece_unit"/>
       		<result property="tradingWeight" column="item_trading_weight"/>
        </collection>
  </resultMap>

mybatis参数为对象中包含list情况处理

mybatis是一个非常好用且灵活的持久层框架,但也正是因为太过灵活,导致有时候参数很难整理。我把我在项目中遇到的一个特殊情况列出来,希望下次再碰到时,也有个印象。

实体类如下:


package com.kxlive.erp.sc.stock.vo; 
import java.util.Date;
import java.util.List; 
import org.springframework.fORMat.annotation.DateTimeFormat; 
import com.kxlive.erp.sc.stock.po.PurchaseDeliver; 

public class QueryPurchaseDeliverVo extends PurchaseDeliver{ 
	private Long merchantId;	
	private Long stockId;
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date startTime;//发货开始时间
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date endTime;//发货结束时间 
	private Integer page;//当前页	
	private Integer rows;//每页记录数	
	private String stockName;//仓库名	
	private String supplierName;//供应商名称	
	private List<Long> condSupplierIds;//供应商IDs	
	private List<Integer> condStatuss;//状态s
	public Date getStartTime() {
		return startTime;
	}
	
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
 
	public Date getEndTime() {
		return endTime;
	}
 
	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
 
	public Integer getPage() {
		return page;
	}
 
	public void setPage(Integer page) {
		this.page = page;
	}
 
	public Integer getRows() {
		return rows;
	}
 
	public void setRows(Integer rows) {
		this.rows = rows;
	}
 
	public String getStockName() {
		return stockName;
	}
 
	public void setStockName(String stockName) {
		this.stockName = stockName;
	}
 
	public String getSupplierName() {
		return supplierName;
	}
 
	public void setSupplierName(String supplierName) {
		this.supplierName = supplierName;
	}
 
	public List<Long> getCondSupplierIds() {
		return condSupplierIds;
	}
 
	public void setCondSupplierIds(List<Long> condSupplierIds) {
		this.condSupplierIds = condSupplierIds;
	}
 
	public List<Integer> getCondStatuss() {
		return condStatuss;
	}
 
	public void setCondStatuss(List<Integer> condStatuss) {
		this.condStatuss = condStatuss;
	}
 
	public Long getMerchantId() {
		return merchantId;
	}
 
	public void setMerchantId(Long merchantId) {
		this.merchantId = merchantId;
	}
 
	public Long getStockId() {
		return stockId;
	}
 
	public void setStockId(Long stockId) {
		this.stockId = stockId;
	}
 
}

这里的实体类中,包含了一个List对象,所以在写xml文件的时候多少对我这种菜鸟有点难度。


  <select id="selectPurchaseDeliverByPrimaryKeySelective" resultMap="purchaseResultMap">
    select
	t2. name stock_name,
	t3. supplier_name, t1.*
		from
			T_SC_PURCHASE_DELIVER t1
		left join T_SC_STOCK t2 on t1.purchase_stock_id = t2.id
		left join T_SC_SUPPLIER t3 on t1.supplier_id = t3.id
    <where>
    	<if test="queryCondition.ifDel != null">
    		and t1.if_del=#{queryCondition.ifDel,jdbcType=INTEGER}
    	</if>
 
    	<if test="queryCondition.condSupplierIds != null">
    	and t1.supplier_id in
    	<foreach collection="queryCondition.condSupplierIds" item="supplierId" index="index" separator="," open="(" close=")">
    		#{queryCondition.condSupplierIds[${index}],jdbcType=BIGINT}
    	</foreach>
    	</if>
    	<if test="queryCondition.condStatuss != null">
    	and t1.status in
    	<span style="color:#ff0000;"><foreach collection="queryCondition.condStatuss" item="status"  separator=","  index="index" open="(" close=")">
    		#{queryCondition.condStatuss[${index}],jdbcType=INTEGER}
    	</foreach></span>
    	</if>
    	<if test="queryCondition.merchantId != null">
    		and t1.merchant_id=#{queryCondition.merchantId,jdbcType=BIGINT}
    	</if>
    	    	<if test="queryCondition.stockId != null">
    		and t1.purchase_stock_id=#{queryCondition.stockId,jdbcType=BIGINT}
    	</if>
    	<if test="queryCondition.startTime != null">
    		 <![CDATA[ and DATE_FORMAT(t1.create_time, '%Y-%m-%d') >=  DATE_FORMAT(#{queryCondition.startTime}, '%Y-%m-%d')]]> 
    	</if>
    	<if test="queryCondition.endTime != null">
    		 <![CDATA[ and DATE_FORMAT(t1.create_time, '%Y-%m-%d') <=  DATE_FORMAT(#{queryCondition.endTime}, '%Y-%m-%d')]]> 
    	</if>
    	<if test="queryCondition.name != null and queryCondition.name != '' ">
    		and t1.name like CONCAT('%', #{queryCondition.name, jdbcType=VARCHAR}, '%') 
    	</if>
    	<if test="queryCondition.deliverNo != null">
    		and t1.deliver_no like CONCAT('%', #{queryCondition.deliverNo, jdbcType=VARCHAR}, '%') 
    	</if>
    </where>
    order by t1.create_time desc
  </select>

标红的地方,即为应用。在foreach循环中,引用index作为list的下标,这样即可将对象中的所有数据取出。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis配置对象包含对象以及List的方式

本文链接: https://lsjlt.com/news/128671.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mybatis配置对象包含对象以及List的方式
    mybatis配置对象包含对象及List 这里隐藏get set方法 public class BatchManagerViewVo implements Serializab...
    99+
    2024-04-02
  • Mybatis中多个对象包含同一个对象的处理操作
    多个对象对应一个对象时,应该如何进行查询? 例如 关键字:association : 联系 ,关联 多个人可以关联一个人。 首先做一些准备,如:实体类,工具类和Mybatis核心文件...
    99+
    2024-04-02
  • javascript数组里可不可以包含对象
    本文小编为大家详细介绍“javascript数组里可不可以包含对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript数组里可不可以包含对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • java中list对象拷贝至新的list对象并保持两个对象独立的方法
    在Java中,如果你想拷贝一个List对象到一个新的List对象,并且修改原来的List不影响新的List中的内容,有几种方法可以实现: 使用构造函数: 可以使用List的构造函数,传递原始List作...
    99+
    2023-09-14
    java list
  • Mybatis-Plus如何配置分页对象
    目录配置类SysUserControllerSysUserServiceSysUserServiceImpl配置类 package com.xiaoge.config; impor...
    99+
    2022-11-13
    Mybatis-Plus 配置分页对象 Mybatis-Plus 分页对象
  • List对象的比对方法有哪些
    这篇文章将为大家详细讲解有关List对象的比对方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求说明我们在开发过程中,经常需要对比两个List对象的数据,找出新增、删除、更改的条目。典型的情况如...
    99+
    2023-06-03
  • MyBatis传入参数为List对象的实现方法
    这篇文章主要介绍MyBatis传入参数为List对象的实现方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SSM框架是JavaWeb必学的框架,虽说基本的增删改查很简单,但是当面临一些特殊情况时,有时还是会显得手足...
    99+
    2023-06-07
  • Mybatis 批量更新实体对象方式
    目录Mybatis批量更新实体对象(1)Dao层接口(2)Mapper.xml文件Mybatis批量更新数据三种方法效率对比探讨批量更新数据三种写法的效率问题Mybatis批量更新实...
    99+
    2024-04-02
  • redis中list存储对象的方法
    小编给大家分享一下redis中list存储对象的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如果需要用到Redis存储Li...
    99+
    2024-04-02
  • Java判断List集合中的对象是否包含有某一元素
    关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用!文本末尾也提供了每个方法的运行结果,供大家参考使用! 文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知...
    99+
    2023-08-31
    java
  • Node.js中的Buffer对象及创建方式
    目录什么是Buffer?注意Buffer中存储的都是二进制数据,但是在显示时以16进制显示Buffer.length表示占用内存的大小Buffer打印数字时会以十进制方式显示Buff...
    99+
    2024-04-02
  • Ajax对象包含post和get两种异步传输方式实例
    这篇文章主要介绍“Ajax对象包含post和get两种异步传输方式实例”,在日常操作中,相信很多人在Ajax对象包含post和get两种异步传输方式实例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • UML对象图中对象的表达方式有哪些
    在UML对象图中,对象可以用不同的方式进行表达,包括:1. 矩形框表示对象:在对象图中,对象通常用矩形框表示。矩形框中包含对象的名称...
    99+
    2023-10-18
    UML
  • Jquery定义对象(闭包)与扩展对象成员的方法
    一、添加对象的静态属性和静态方法: 声明一个对象MyObject,添加一个b的静态属性和myclick的静态方法。 (function ($) { MyObject = fu...
    99+
    2024-04-02
  • JavaScript中String对象的使用方法以及实例
    方法总览: 实例(js中字符串和字符串对象之间能够自由转换,字符串可以直接使用字符串对象的方法和属性):  var ss="孙士彬倪炜豪汤键倪炜豪"; documen...
    99+
    2024-04-02
  • java map转list对象的方法是什么
    Rate limit reached for gpt-3.5-turbo in organization org-68Lqb4iD2...
    99+
    2023-10-18
    java
  • vue路由传参接收以及传参对象为对象时的问题及解决
    目录路由传参接收以及传参对象为对象时的问题场景接收路由参数vue路由传参总结Vue路由传参路由传参接收以及传参对象为对象时的问题 具体代码如下所示: 场景 <div @clic...
    99+
    2024-04-02
  • Mybatis批量更新实体对象的方式是什么
    这期内容当中小编将会给大家带来有关Mybatis批量更新实体对象的方式是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mybatis批量更新实体对象(1)Dao层接口   ...
    99+
    2023-06-21
  • 如何以正确的方式初始化KeyValuePair对象
    要正确地初始化一个KeyValuePair对象,需要使用它的构造函数来设置键和值。根据编程语言的不同,具体的实现方式可能会有所不同。...
    99+
    2023-09-27
    对象
  • Java中对象打包的正确方式是什么?
    Java是一门面向对象的编程语言,在Java中,对象是非常重要的概念。对象的创建和管理对于Java程序的运行效率和稳定性有着至关重要的影响。在Java中,对象的打包也是非常重要的一部分,本篇文章将会介绍Java中对象打包的正确方式。 什么是...
    99+
    2023-07-23
    打包 接口 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作