`
yingruochen
  • 浏览: 73994 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate 无主键操作——联合主键

阅读更多

今天给了两个表,但是没有主键,傻眼了,没有配到过没有主键的表(哦承认自己少见多怪了),上网查了一下要用联合主键,把一条数据看做一个主键,上网查了一下都说做好不要用联合主键,不用联合主键应该怎么做呢?思考中......

下来说说使用联合主键的方法吧。

用Myeclipse用具生成了四个类,分别是:TradeList.java,TradeListId.java,TradeInfo.java和TradeInfoId.java

具体的让我们来看一下:

package com.iplamp.enterprise.model;

import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 * TradeListId entity. @author MyEclipse Persistence Tools
 */
@Embeddable
public class TradeListId implements java.io.Serializable {

	// Fields

	private String tradeId;
	private String categoryId;
	private String tradeName;
	private String applier;
	private Integer EId;

	// Property accessors

	@Column(name = "trade_id", length = 20)
	public String getTradeId() {
		return this.tradeId;
	}

	public void setTradeId(String tradeId) {
		this.tradeId = tradeId;
	}

	@Column(name = "category_id", length = 20)
	public String getCategoryId() {
		return this.categoryId;
	}

	public void setCategoryId(String categoryId) {
		this.categoryId = categoryId;
	}

	@Column(name = "trade_name")
	public String getTradeName() {
		return this.tradeName;
	}

	public void setTradeName(String tradeName) {
		this.tradeName = tradeName;
	}

	@Column(name = "applier")
	public String getApplier() {
		return this.applier;
	}

	public void setApplier(String applier) {
		this.applier = applier;
	}

	@Column(name = "e_id", nullable = false)
	public Integer getEId() {
		return this.EId;
	}

	public void setEId(Integer EId) {
		this.EId = EId;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof TradeListId))
			return false;
		TradeListId castOther = (TradeListId) other;

		return ((this.getTradeId() == castOther.getTradeId()) || (this
				.getTradeId() != null && castOther.getTradeId() != null && this
				.getTradeId().equals(castOther.getTradeId())))
				&& ((this.getCategoryId() == castOther.getCategoryId()) || (this
						.getCategoryId() != null
						&& castOther.getCategoryId() != null && this
						.getCategoryId().equals(castOther.getCategoryId())))
				&& ((this.getTradeName() == castOther.getTradeName()) || (this
						.getTradeName() != null
						&& castOther.getTradeName() != null && this
						.getTradeName().equals(castOther.getTradeName())))
				&& ((this.getApplier() == castOther.getApplier()) || (this
						.getApplier() != null && castOther.getApplier() != null && this
						.getApplier().equals(castOther.getApplier())))
				&& ((this.getEId() == castOther.getEId()) || (this.getEId() != null
						&& castOther.getEId() != null && this.getEId().equals(
						castOther.getEId())));
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result
				+ (getTradeId() == null ? 0 : this.getTradeId().hashCode());
		result = 37
				* result
				+ (getCategoryId() == null ? 0 : this.getCategoryId()
						.hashCode());
		result = 37 * result
				+ (getTradeName() == null ? 0 : this.getTradeName().hashCode());
		result = 37 * result
				+ (getApplier() == null ? 0 : this.getApplier().hashCode());
		result = 37 * result
				+ (getEId() == null ? 0 : this.getEId().hashCode());
		return result;
	}

}


import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * TradeList entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "ie_trade_list", catalog = "iplamp_enterprise")
public class TradeList implements java.io.Serializable {

    public static String FIELD_EID = "id.EId" ;
    public static String FIELD_TRADEID = "id.tradeId" ;
	// Fields

	private TradeListId id;

	// Property accessors
	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "tradeId", column = @Column(name = "trade_id", length = 20)),
			@AttributeOverride(name = "categoryId", column = @Column(name = "category_id", length = 20)),
			@AttributeOverride(name = "tradeName", column = @Column(name = "trade_name")),
			@AttributeOverride(name = "applier", column = @Column(name = "applier")),
			@AttributeOverride(name = "EId", column = @Column(name = "e_id", nullable = false)) })
	public TradeListId getId() {
		return this.id;
	}

	public void setId(TradeListId id) {
		this.id = id;
	}
}



import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 * TradeInfoId entity. @author MyEclipse Persistence Tools
 */
@Embeddable
public class TradeInfoId implements java.io.Serializable {

	// Fields

	private String regNo;
	private String catId;
	private String applyDate;
	private String applierCn;
	private String applierAddrCn;
	private String applierEn;
	private String applierAddrEn;
	private String tradeImgUrl;
	private String tradeImgThumbUrl;
	private String imgUrl;
	private String imgThumbUrl;
	private String serviceList;
	private String similarGroup;
	private String csggId;
	private String zcggId;
	private String csggDate;
	private String zcggDate;
	private String validYear;
	private String hqzdDate;
	private String gjczDate;
	private String priorityDate;
	private String agentName;
	private String specifiedColor;
	private String tradeType;
	private String isShare;
	private String remark;
	private String tradeflow;

	// Constructors

	// Property accessors

	@Column(name = "regNo", length = 20)
	public String getRegNo() {
		return this.regNo;
	}

	public void setRegNo(String regNo) {
		this.regNo = regNo;
	}

	@Column(name = "catId", length = 20)
	public String getCatId() {
		return this.catId;
	}

	public void setCatId(String catId) {
		this.catId = catId;
	}

	@Column(name = "applyDate", length = 20)
	public String getApplyDate() {
		return this.applyDate;
	}

	public void setApplyDate(String applyDate) {
		this.applyDate = applyDate;
	}

	@Column(name = "applierCN")
	public String getApplierCn() {
		return this.applierCn;
	}

	public void setApplierCn(String applierCn) {
		this.applierCn = applierCn;
	}

	@Column(name = "applierAddrCN")
	public String getApplierAddrCn() {
		return this.applierAddrCn;
	}

	public void setApplierAddrCn(String applierAddrCn) {
		this.applierAddrCn = applierAddrCn;
	}

	@Column(name = "applierEN")
	public String getApplierEn() {
		return this.applierEn;
	}

	public void setApplierEn(String applierEn) {
		this.applierEn = applierEn;
	}

	@Column(name = "applierAddrEN")
	public String getApplierAddrEn() {
		return this.applierAddrEn;
	}

	public void setApplierAddrEn(String applierAddrEn) {
		this.applierAddrEn = applierAddrEn;
	}

	@Column(name = "tradeImgUrl")
	public String getTradeImgUrl() {
		return this.tradeImgUrl;
	}

	public void setTradeImgUrl(String tradeImgUrl) {
		this.tradeImgUrl = tradeImgUrl;
	}

	@Column(name = "tradeImgThumbUrl")
	public String getTradeImgThumbUrl() {
		return this.tradeImgThumbUrl;
	}

	public void setTradeImgThumbUrl(String tradeImgThumbUrl) {
		this.tradeImgThumbUrl = tradeImgThumbUrl;
	}

	@Column(name = "imgUrl")
	public String getImgUrl() {
		return this.imgUrl;
	}

	public void setImgUrl(String imgUrl) {
		this.imgUrl = imgUrl;
	}

	@Column(name = "imgThumbUrl")
	public String getImgThumbUrl() {
		return this.imgThumbUrl;
	}

	public void setImgThumbUrl(String imgThumbUrl) {
		this.imgThumbUrl = imgThumbUrl;
	}

	@Column(name = "serviceList")
	public String getServiceList() {
		return this.serviceList;
	}

	public void setServiceList(String serviceList) {
		this.serviceList = serviceList;
	}

	@Column(name = "similarGroup")
	public String getSimilarGroup() {
		return this.similarGroup;
	}

	public void setSimilarGroup(String similarGroup) {
		this.similarGroup = similarGroup;
	}

	@Column(name = "csggId")
	public String getCsggId() {
		return this.csggId;
	}

	public void setCsggId(String csggId) {
		this.csggId = csggId;
	}

	@Column(name = "zcggId")
	public String getZcggId() {
		return this.zcggId;
	}

	public void setZcggId(String zcggId) {
		this.zcggId = zcggId;
	}

	@Column(name = "csggDate")
	public String getCsggDate() {
		return this.csggDate;
	}

	public void setCsggDate(String csggDate) {
		this.csggDate = csggDate;
	}

	@Column(name = "zcggDate")
	public String getZcggDate() {
		return this.zcggDate;
	}

	public void setZcggDate(String zcggDate) {
		this.zcggDate = zcggDate;
	}

	@Column(name = "validYear")
	public String getValidYear() {
		return this.validYear;
	}

	public void setValidYear(String validYear) {
		this.validYear = validYear;
	}

	@Column(name = "hqzdDate")
	public String getHqzdDate() {
		return this.hqzdDate;
	}

	public void setHqzdDate(String hqzdDate) {
		this.hqzdDate = hqzdDate;
	}

	@Column(name = "gjczDate")
	public String getGjczDate() {
		return this.gjczDate;
	}

	public void setGjczDate(String gjczDate) {
		this.gjczDate = gjczDate;
	}

	@Column(name = "priorityDate")
	public String getPriorityDate() {
		return this.priorityDate;
	}

	public void setPriorityDate(String priorityDate) {
		this.priorityDate = priorityDate;
	}

	@Column(name = "agentName")
	public String getAgentName() {
		return this.agentName;
	}

	public void setAgentName(String agentName) {
		this.agentName = agentName;
	}

	@Column(name = "specifiedColor")
	public String getSpecifiedColor() {
		return this.specifiedColor;
	}

	public void setSpecifiedColor(String specifiedColor) {
		this.specifiedColor = specifiedColor;
	}

	@Column(name = "tradeType")
	public String getTradeType() {
		return this.tradeType;
	}

	public void setTradeType(String tradeType) {
		this.tradeType = tradeType;
	}

	@Column(name = "isShare")
	public String getIsShare() {
		return this.isShare;
	}

	public void setIsShare(String isShare) {
		this.isShare = isShare;
	}

	@Column(name = "remark")
	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "tradeflow")
	public String getTradeflow() {
		return this.tradeflow;
	}

	public void setTradeflow(String tradeflow) {
		this.tradeflow = tradeflow;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof TradeInfoId))
			return false;
		TradeInfoId castOther = (TradeInfoId) other;

		return ((this.getRegNo() == castOther.getRegNo()) || (this.getRegNo() != null
				&& castOther.getRegNo() != null && this.getRegNo().equals(
				castOther.getRegNo())))
				&& ((this.getCatId() == castOther.getCatId()) || (this
						.getCatId() != null && castOther.getCatId() != null && this
						.getCatId().equals(castOther.getCatId())))
				&& ((this.getApplyDate() == castOther.getApplyDate()) || (this
						.getApplyDate() != null
						&& castOther.getApplyDate() != null && this
						.getApplyDate().equals(castOther.getApplyDate())))
				&& ((this.getApplierCn() == castOther.getApplierCn()) || (this
						.getApplierCn() != null
						&& castOther.getApplierCn() != null && this
						.getApplierCn().equals(castOther.getApplierCn())))
				&& ((this.getApplierAddrCn() == castOther.getApplierAddrCn()) || (this
						.getApplierAddrCn() != null
						&& castOther.getApplierAddrCn() != null && this
						.getApplierAddrCn()
						.equals(castOther.getApplierAddrCn())))
				&& ((this.getApplierEn() == castOther.getApplierEn()) || (this
						.getApplierEn() != null
						&& castOther.getApplierEn() != null && this
						.getApplierEn().equals(castOther.getApplierEn())))
				&& ((this.getApplierAddrEn() == castOther.getApplierAddrEn()) || (this
						.getApplierAddrEn() != null
						&& castOther.getApplierAddrEn() != null && this
						.getApplierAddrEn()
						.equals(castOther.getApplierAddrEn())))
				&& ((this.getTradeImgUrl() == castOther.getTradeImgUrl()) || (this
						.getTradeImgUrl() != null
						&& castOther.getTradeImgUrl() != null && this
						.getTradeImgUrl().equals(castOther.getTradeImgUrl())))
				&& ((this.getTradeImgThumbUrl() == castOther
						.getTradeImgThumbUrl()) || (this.getTradeImgThumbUrl() != null
						&& castOther.getTradeImgThumbUrl() != null && this
						.getTradeImgThumbUrl().equals(
								castOther.getTradeImgThumbUrl())))
				&& ((this.getImgUrl() == castOther.getImgUrl()) || (this
						.getImgUrl() != null && castOther.getImgUrl() != null && this
						.getImgUrl().equals(castOther.getImgUrl())))
				&& ((this.getImgThumbUrl() == castOther.getImgThumbUrl()) || (this
						.getImgThumbUrl() != null
						&& castOther.getImgThumbUrl() != null && this
						.getImgThumbUrl().equals(castOther.getImgThumbUrl())))
				&& ((this.getServiceList() == castOther.getServiceList()) || (this
						.getServiceList() != null
						&& castOther.getServiceList() != null && this
						.getServiceList().equals(castOther.getServiceList())))
				&& ((this.getSimilarGroup() == castOther.getSimilarGroup()) || (this
						.getSimilarGroup() != null
						&& castOther.getSimilarGroup() != null && this
						.getSimilarGroup().equals(castOther.getSimilarGroup())))
				&& ((this.getCsggId() == castOther.getCsggId()) || (this
						.getCsggId() != null && castOther.getCsggId() != null && this
						.getCsggId().equals(castOther.getCsggId())))
				&& ((this.getZcggId() == castOther.getZcggId()) || (this
						.getZcggId() != null && castOther.getZcggId() != null && this
						.getZcggId().equals(castOther.getZcggId())))
				&& ((this.getCsggDate() == castOther.getCsggDate()) || (this
						.getCsggDate() != null
						&& castOther.getCsggDate() != null && this
						.getCsggDate().equals(castOther.getCsggDate())))
				&& ((this.getZcggDate() == castOther.getZcggDate()) || (this
						.getZcggDate() != null
						&& castOther.getZcggDate() != null && this
						.getZcggDate().equals(castOther.getZcggDate())))
				&& ((this.getValidYear() == castOther.getValidYear()) || (this
						.getValidYear() != null
						&& castOther.getValidYear() != null && this
						.getValidYear().equals(castOther.getValidYear())))
				&& ((this.getHqzdDate() == castOther.getHqzdDate()) || (this
						.getHqzdDate() != null
						&& castOther.getHqzdDate() != null && this
						.getHqzdDate().equals(castOther.getHqzdDate())))
				&& ((this.getGjczDate() == castOther.getGjczDate()) || (this
						.getGjczDate() != null
						&& castOther.getGjczDate() != null && this
						.getGjczDate().equals(castOther.getGjczDate())))
				&& ((this.getPriorityDate() == castOther.getPriorityDate()) || (this
						.getPriorityDate() != null
						&& castOther.getPriorityDate() != null && this
						.getPriorityDate().equals(castOther.getPriorityDate())))
				&& ((this.getAgentName() == castOther.getAgentName()) || (this
						.getAgentName() != null
						&& castOther.getAgentName() != null && this
						.getAgentName().equals(castOther.getAgentName())))
				&& ((this.getSpecifiedColor() == castOther.getSpecifiedColor()) || (this
						.getSpecifiedColor() != null
						&& castOther.getSpecifiedColor() != null && this
						.getSpecifiedColor().equals(
								castOther.getSpecifiedColor())))
				&& ((this.getTradeType() == castOther.getTradeType()) || (this
						.getTradeType() != null
						&& castOther.getTradeType() != null && this
						.getTradeType().equals(castOther.getTradeType())))
				&& ((this.getIsShare() == castOther.getIsShare()) || (this
						.getIsShare() != null && castOther.getIsShare() != null && this
						.getIsShare().equals(castOther.getIsShare())))
				&& ((this.getRemark() == castOther.getRemark()) || (this
						.getRemark() != null && castOther.getRemark() != null && this
						.getRemark().equals(castOther.getRemark())))
				&& ((this.getTradeflow() == castOther.getTradeflow()) || (this
						.getTradeflow() != null
						&& castOther.getTradeflow() != null && this
						.getTradeflow().equals(castOther.getTradeflow())));
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result
				+ (getRegNo() == null ? 0 : this.getRegNo().hashCode());
		result = 37 * result
				+ (getCatId() == null ? 0 : this.getCatId().hashCode());
		result = 37 * result
				+ (getApplyDate() == null ? 0 : this.getApplyDate().hashCode());
		result = 37 * result
				+ (getApplierCn() == null ? 0 : this.getApplierCn().hashCode());
		result = 37
				* result
				+ (getApplierAddrCn() == null ? 0 : this.getApplierAddrCn()
						.hashCode());
		result = 37 * result
				+ (getApplierEn() == null ? 0 : this.getApplierEn().hashCode());
		result = 37
				* result
				+ (getApplierAddrEn() == null ? 0 : this.getApplierAddrEn()
						.hashCode());
		result = 37
				* result
				+ (getTradeImgUrl() == null ? 0 : this.getTradeImgUrl()
						.hashCode());
		result = 37
				* result
				+ (getTradeImgThumbUrl() == null ? 0 : this
						.getTradeImgThumbUrl().hashCode());
		result = 37 * result
				+ (getImgUrl() == null ? 0 : this.getImgUrl().hashCode());
		result = 37
				* result
				+ (getImgThumbUrl() == null ? 0 : this.getImgThumbUrl()
						.hashCode());
		result = 37
				* result
				+ (getServiceList() == null ? 0 : this.getServiceList()
						.hashCode());
		result = 37
				* result
				+ (getSimilarGroup() == null ? 0 : this.getSimilarGroup()
						.hashCode());
		result = 37 * result
				+ (getCsggId() == null ? 0 : this.getCsggId().hashCode());
		result = 37 * result
				+ (getZcggId() == null ? 0 : this.getZcggId().hashCode());
		result = 37 * result
				+ (getCsggDate() == null ? 0 : this.getCsggDate().hashCode());
		result = 37 * result
				+ (getZcggDate() == null ? 0 : this.getZcggDate().hashCode());
		result = 37 * result
				+ (getValidYear() == null ? 0 : this.getValidYear().hashCode());
		result = 37 * result
				+ (getHqzdDate() == null ? 0 : this.getHqzdDate().hashCode());
		result = 37 * result
				+ (getGjczDate() == null ? 0 : this.getGjczDate().hashCode());
		result = 37
				* result
				+ (getPriorityDate() == null ? 0 : this.getPriorityDate()
						.hashCode());
		result = 37 * result
				+ (getAgentName() == null ? 0 : this.getAgentName().hashCode());
		result = 37
				* result
				+ (getSpecifiedColor() == null ? 0 : this.getSpecifiedColor()
						.hashCode());
		result = 37 * result
				+ (getTradeType() == null ? 0 : this.getTradeType().hashCode());
		result = 37 * result
				+ (getIsShare() == null ? 0 : this.getIsShare().hashCode());
		result = 37 * result
				+ (getRemark() == null ? 0 : this.getRemark().hashCode());
		result = 37 * result
				+ (getTradeflow() == null ? 0 : this.getTradeflow().hashCode());
		return result;
	}

}



import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * TradeInfo entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "ie_trade_info", catalog = "iplamp_enterprise")
public class TradeInfo implements java.io.Serializable {

    public static String FIELD_REGNO = "id.regNo";

    // Fields

    private TradeInfoId id;

    // Constructors

    /**
     * default constructor
     */
    public TradeInfo() {
    }

    /**
     * full constructor
     */
    public TradeInfo(TradeInfoId id) {
        this.id = id;
    }

	// Property accessors
	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "regNo", column = @Column(name = "regNo", length = 20)),
			@AttributeOverride(name = "catId", column = @Column(name = "catId", length = 20)),
			@AttributeOverride(name = "applyDate", column = @Column(name = "applyDate", length = 20)),
			@AttributeOverride(name = "applierCn", column = @Column(name = "applierCN")),
			@AttributeOverride(name = "applierAddrCn", column = @Column(name = "applierAddrCN")),
			@AttributeOverride(name = "applierEn", column = @Column(name = "applierEN")),
			@AttributeOverride(name = "applierAddrEn", column = @Column(name = "applierAddrEN")),
			@AttributeOverride(name = "tradeImgUrl", column = @Column(name = "tradeImgUrl")),
			@AttributeOverride(name = "tradeImgThumbUrl", column = @Column(name = "tradeImgThumbUrl")),
			@AttributeOverride(name = "imgUrl", column = @Column(name = "imgUrl")),
			@AttributeOverride(name = "imgThumbUrl", column = @Column(name = "imgThumbUrl")),
			@AttributeOverride(name = "serviceList", column = @Column(name = "serviceList")),
			@AttributeOverride(name = "similarGroup", column = @Column(name = "similarGroup")),
			@AttributeOverride(name = "csggId", column = @Column(name = "csggId")),
			@AttributeOverride(name = "zcggId", column = @Column(name = "zcggId")),
			@AttributeOverride(name = "csggDate", column = @Column(name = "csggDate")),
			@AttributeOverride(name = "zcggDate", column = @Column(name = "zcggDate")),
			@AttributeOverride(name = "validYear", column = @Column(name = "validYear")),
			@AttributeOverride(name = "hqzdDate", column = @Column(name = "hqzdDate")),
			@AttributeOverride(name = "gjczDate", column = @Column(name = "gjczDate")),
			@AttributeOverride(name = "priorityDate", column = @Column(name = "priorityDate")),
			@AttributeOverride(name = "agentName", column = @Column(name = "agentName")),
			@AttributeOverride(name = "specifiedColor", column = @Column(name = "specifiedColor")),
			@AttributeOverride(name = "tradeType", column = @Column(name = "tradeType")),
			@AttributeOverride(name = "isShare", column = @Column(name = "isShare")),
			@AttributeOverride(name = "remark", column = @Column(name = "remark")),
			@AttributeOverride(name = "tradeflow", column = @Column(name = "tradeflow")) })
	public TradeInfoId getId() {
		return this.id;
	}

	public void setId(TradeInfoId id) {
		this.id = id;
	}

}
 
 

上面四个类是工具自动生成的。

下面做一个用根据e_id查询,带分页,按trade_id排序

 

  /**
     * 获取所有的对象
     * @return
     */
public List<TradeList> getAll() {
        return this.tradeListDao.loadAll();
    }

    public List<TradeList> getTradeList(PageBean pageBean, Integer eId) {
        HibernateSearchCondition hsc = new HibernateSearchCondition();
        hsc.addCriterion(Restrictions.eq(TradeList.FIELD_EID, eId));
        // 按tradeId排序
        hsc.addDESC(TradeList.FIELD_TRADEID);  //降序
        return getTradeListByPage(pageBean, hsc);
    }

 上面这个查询条件就相当于

Criteria c = this.getSession().createCriteria(TradeList.class)
                    .add(Restrictions.eq(TradeList.FIELD_EID, eId))
                    .addOrder(Order.desc(TradeList.FIELD_TRADEID));

 

条件就通过id.XXX(字段)来描述就可以了,其他的与有主键的相同

但是使用联合主键注意点    操作的时候自己注意点

 

建议:如非必要,不要使用联合主键,表中没有主键,但是在实体类中可以给某个字段建立主键关联,就像表中有主键一样就行了,但是必须保证作为主键的那个字段没有重复的值。

对视图的映射一般都没有主键,如果使用工具自动映射的话就会出现联合主键的,所以在映射的实体类中,我们可以把某个不能没有重复的值的字段当做主键来映射

 

 

 

 

分享到:
评论
1 楼 du_bo 2013-11-06  
请问楼主这个如何save()

相关推荐

    node-v12.20.1-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于Springboot+Vue的乡政府管理系统-毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    一名合格的程序猿修炼手册.md

    一名合格的程序猿修炼手册.

    5MHz 函数发生器使用说明书

    5MHz 函数发生器使用说明书

    99- 矿山工业互联网平台解决方案.pptx

    99- 矿山工业互联网平台解决方案.pptx

    基于Python大学生社会实践申报系统的设计与实现带vue前后端分离毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    工厂工资明细表Excel模版

    基于提供的字段介绍,我们可以设计一个基础的工厂工资明细表Excel模板结构如下: | 序号 | 姓名 | 工种 | 工作天数 | 工时费/天 | 小计(正常工资) | 加班时间 | 加班费率/小时 | 小计(加班工资) | 预借 | 合计(实发工资) | 签字 | 备注 | | ---- | ---- | ---- | -------- | ---------- | -------------- | -------- | -------------- | --------------- | ---- | -------------- | ---- | ---- | | 1 | | | | | | | | | | | | | | 2 | | | | | =D2*C2

    供应链管理 高成本、高库存、重资产的解决方案.rar

    随着市场竞争的不断加剧和客户需求的多样化,传统的供应链管理模式面临着高成本、高库存和重资产等一系列挑战。为了有效应对这些挑战,企业亟需通过数字化转型来重塑供应链管理,实现效率提升和成本降低。本资料《供应链管理:高成本、高库存、重资产的解决方案》提供了针对这些问题的综合性数字化解决方案。在这份精品资料中,读者将了解到如何利用先进的信息技术手段,如大数据、云计算、物联网(IoT)和人工智能(AI),对供应链进行优化。通过实时数据分析,企业能够精准预测市场需求,从而减少过剩库存,降低仓储成本。同时,智能化的供应链协同平台可以加强供应商与制造商之间的合作,提高响应速度和灵活性,缩短产品交付周期。此外,资料还深入探讨了如何通过数字技术实现供应链的可视化管理,使企业能够全面掌握供应链的每一个环节,及时发现并解决问题,避免成本浪费。通过采用轻资产运营模式,企业能够减轻固定资产负担,提高资本使用效率。最终,这份资料不仅为企业提供了一套完整的供应链数字化转型路径,还结合具体案例分析,展示了数字化转型如何在实际操作中带来显著成效,帮助企业在激烈的市场竞争中保持领先地位。重新回答||

    五相感应电机矢量控制模型MATLAB

    适合相关科研人员,新手借鉴啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

    node-v10.14.0-x64.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于STM32F103C8单片机-FLASH读写程序KEIL工程源码.zip

    STM32学习软件编程资料,STM32F103C8单片机经典外设应用设计实例软件源代码,KEIL工程文件,可供学习参考。

    node-v12.22.8-sunos-x64.tar_3.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v12.16.2-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    菜鸟自制流密码.docx

    菜鸟自制流密码.docx

    基于大数据的房产估价.doc

    基于大数据的房产估价 基于大数据的房产估价是一种利用海量数据和分析技术来评估房地产价值的方法。它通过收集、整合和分析各种与房地产相关的数据,以提供更加准确、全面的房产估价服务。 首先,大数据在房产估价中的应用主要体现在数据收集和处理上。这些数据可能包括不同时间点的房产属性、成交量、成交额、成交时长等,以及消费者线上行为数据和市场交易数据等。这些数据可以来自于多个渠道,如政府部门、房地产机构、互联网平台等。通过对这些数据的收集、清洗、整合和分析,可以更加准确地判断房地产市场的现状和趋势,为房产估价提供有力的数据支持。 其次,基于大数据的房产估价方法还可以结合地理信息系统(GIS)和其他技术工具,对房地产价格进行精细化分析。例如,可以利用GIS系统判断各类城市生活配套设施对房地产价格影响的权重,或者结合消费者行为数据和交易数据,分析目标消费者的核心需求和迫切程度,从而更准确地判断房地产项目的可行性和市场潜力。 此外,基于大数据的房产估价还可以利用机器学习、人工智能等先进技术,构建预测模型,对房地产市场的未来发展进行预测和研判。这些模型可以根据历史数据和趋势,分析各种因素对房地产价格的

    node-v11.6.0-linux-armv7l.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    5G网优认证练习题题库.xlsx

    5G通信、网络优化与通信建设

    绘画学习平台微信小程序设计+ssm后端毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    抛光机-零件图-机械工程图-机械三维3D建模图打包下载.zip

    抛光机_零件图_机械工程图_机械三维3D建模图打包下载.zip

    Cambro 2020 21 产品目录

    Cambro 2020 21 产品目录

Global site tag (gtag.js) - Google Analytics