`

探索实体类存在的真正意义

    博客分类:
  • JAVA
阅读更多

一. 实体类简述  

 实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的

POJO(Plain Old Java Objects)简单的Java对象

 

它的一般格式就是

public class A{
      private String id;
      public String getId(){
           return this.id;
      }
      public void setId(String id){
           this.id = id;
      }
}

 
其实这样写的意义就在于封装,id作为类A的成员变量,也称属性,一般情况下拥有读和写的能力,我们将id设为private,则外部无法对其直接进行操作,同时通过set方法提供了外部更改其value的方法,又通过get方法使外界能读取该成员变量的值。(必须有set,get方法)

 

 

二.序列化的必要性

Java中,一切都是对象,在分布式环境中经常需要将Object从这一端网络或设备传递到另一端。这就需要有一种可以在两端传输数据的协议。Java序列化机制就是为了解决这个问题而产生。

  java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。

Java 串行化技术可以使你将一个对象的状态写入一个Byte 里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里Java的串行化机制是RMIEJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

 

对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中。JVM停止之后,这些状态就丢失了。在很多情况下,对象的内部状态是需要被持久 化下来的。提到持久化,最直接的做法是保存到文件系统或是数据库之中。这种做法一般涉及到自定义存储格式以及繁琐的数据转换。对象关系映射(Object-relational mapping)是一种典型的用关系数据库来持久化对象的方式,也存在很多直接存储对象的对象数据库。 对象序列化机制(object serialization)是Java语言内建的一种对象持久化方式,可以很容易的在JVM中的活动对象和字节数组(流)之间进行转换。除了可以很简单 的实现持久化之外,序列化机制的另外一个重要用途是在远程方法调用中,用来对开发人员屏蔽底层实现细节。

 

三.我们应该这样用实体类

1.作为table的entity

 

public class Category {

    private Integer id;
    @JSONField(name="nameCN")
    private String cateNameCN;
    @JSONField(name="nameEN")
    private String cateNameEN;

    public Integer getId() {
        return id;
    }

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

    public String getCateNameCN() {
        return cateNameCN;
    }

    public void setCateNameCN(String cateNameCN) {
        this.cateNameCN = cateNameCN;
    }

    public String getCateNameEN() {
        return cateNameEN;
    }

    public void setCateNameEN(String cateNameEN) {
        this.cateNameEN = cateNameEN;
    }

    public Category() {
        super();
    }

    public Category(Integer id, String cateNameCN, String cateNameEN) {
        super();
        this.id = id;
        this.cateNameCN = cateNameCN;
        this.cateNameEN = cateNameEN;
    }

    public static Category fromResultSet(ResultSet rs) throws SQLException {
        return new Category(rs.getInt("Id"), rs.getString("cateNameCN"), rs.getString("cateNameEN"));
    }

 2.request和response中用于接收参数的entity

 

 

public class PlatformRequestHeader {
    @JSONField(name = "uid")
    private String userId;
    @JSONField(name = "clid")
    private String clientId;
    @JSONField(name = "cid")
    private Integer companyId;
    @JSONField(name = "uip")
    private String userIp;
    @JSONField(name = "rid")
    private String requestId;

    public PlatformRequestHeader() {
        this.userId = "";
        this.clientId = "";
        this.companyId = -1;
        this.userIp = "";
        this.requestId = "";
    }

    public PlatformRequestHeader(String userId, String clientId, Integer companyId, String userIp, String requestId) {
        this.userId = userId;
        this.clientId = clientId;
        this.companyId = companyId;
        this.userIp = userIp;
        this.requestId = requestId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getClientId() {
        return clientId;
    }

    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public String getUserIp() {
        return userIp;
    }

    public void setUserIp(String userIp) {
        this.userIp = userIp;
    }

    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    @Override
    public String toString() {
        return "{\"uid\":\"" + userId + "\",\"clid\":\"" + clientId + "\",\"cid\":" + companyId + ",\"uip\":\"" + userIp
                + "\",\"rid\":\"" + requestId + "\"}";
    }
}

   

 

public class ResponseModel implements Serializable {
	/**
	 * 
	 */
    private static final long serialVersionUID = 1L;
	@JSONField(name = "ers")
	private List<ErrorInfo> errors;
	@JSONField(name = "err")
	private ErrorInfo errorInfo;
	@JSONField(name = "data")
	private Object data;

	public ErrorInfo getErrorInfo() {
		return errorInfo;
	}

	public void setErrorInfo(ErrorInfo errorInfo) {
		this.errorInfo = errorInfo;
	}
	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public List<ErrorInfo> getErrors() {
		return errors;
	}

	public void setErrors(List<ErrorInfo> errors) {
		this.errors = errors;
	}

	public ResponseModel() {
	}

	public ResponseModel(List<ErrorInfo> errors, Object object) {
		this.errors = errors;
		this.data = object;
	}

	public ResponseModel(ErrorInfo error, Object object) {
		this.errorInfo=error;
		this.data = object;
	}

 3.logic里面的工具entity-----类似于map(不过里面只有一组值)

  

public class Tuple implements Serializable {
	private static final long serialVersionUID = -8719929625763890308L;

	public static <A, B> Tuple2<A, B> tuple(A item1, B item2) {
		return new Tuple2<A, B>(item1, item2);
	}

	public static <A, B, C> Tuple3<A, B, C> tuple(A item1, B item2,
			C item3) {
		return new Tuple3<A, B, C>(item1, item2, item3);
	}

	public static final class Tuple2<A, B> extends Tuple implements
			Serializable {

		/**
		 * gen by eclipse
		 */
		private static final long serialVersionUID = 7263645006696591635L;
		private A item1;
		private B item2;

		public Tuple2() {
			
		}
		
		public Tuple2(A item1, B item2) {
			this.item1 = item1;
			this.item2 = item2;
		}

		public A getItem1() {
			return item1;
		}

		public void setItem1(A item1) {
			this.item1 = item1;
		}

		public B getItem2() {
			return item2;
		}

		public void setItem2(B item2) {
			this.item2 = item2;
		}
	}

	public static final class Tuple3<A, B, C> extends Tuple implements
			Serializable {

		/**
		 * gen by eclipse
		 */
		private static final long serialVersionUID = 482545776907024160L;

		private A item1;
		private B item2;
		private C item3;
		
		public Tuple3(A item1, B item2, C item3) {
			this.item1 = item1;
			this.item2 = item2;
			this.item3 = item3;
		}
		
		public A getItem1() {
			return item1;
		}

		public void setItem1(A item1) {
			this.item1 = item1;
		}

		public B getItem2() {
			return item2;
		}

		public void setItem2(B item2) {
			this.item2 = item2;
		}

		public C getItem3() {
			return item3;
		}

		public void setItem3(C item3) {
			this.item3 = item3;
		}
	}
	
	public static final class Tuple4<A, B, C, D> extends Tuple implements
			Serializable {

		/**
		 * gen by eclipse
		 */
		private static final long serialVersionUID = 482545776907024160L;

		private A item1;
		private B item2;
		private C item3;
		private D item4;

		public Tuple4(A item1, B item2, C item3, D item4) {
			this.item1 = item1;
			this.item2 = item2;
			this.item3 = item3;
			this.item4 = item4;
		}

		public A getItem1() {
			return item1;
		}

		public void setItem1(A item1) {
			this.item1 = item1;
		}

		public B getItem2() {
			return item2;
		}

		public void setItem2(B item2) {
			this.item2 = item2;
		}

		public C getItem3() {
			return item3;
		}

		public void setItem3(C item3) {
			this.item3 = item3;
		}
		
		public D getItem4() {
			return item4;
		}

		public void setItem4(D item4) {
			this.item4 = item4;
		}
	}
}

 备注:实体类就是有set和get方法的简单JAVA对象,定义的时候一定要记住要序列化哦!!!

分享到:
评论

相关推荐

    一种开放式中文命名实体识别的新方法

    命名实体识别(Named Entity Recognition, NER)是自然语言处理领域的一项关键技术,它能够帮助计算机从文本中提取出具有特定意义的信息单元,如人名、地名、组织机构名等。随着互联网数据的爆炸式增长,如何有效地...

    OpenCPN探索 -- 空间对象构建

    空间对象是指包含真实世界实体位置相关信息的对象。在S57标准中,它们与特征对象一起构成对现实实体的描述。空间对象不能独立存在,必须依赖于一个特征对象。 ##### 2.2 模型描述 S57标准仅定义了向量模型这一种...

    融合预训练模型文本特征的短文本分类方法.docx

    借助有效的预训练任务和注意力机制,预训练模型可以更好地理解语句的真正含义,在自然语言处理的各项任务中取得了领先的精度。预训练模型利用上下文信息,解决了传统词向量表示不能一词多义的问题。 段丹丹等[5]...

    地籍拓扑关系

    然而,现有的拓扑关系模型在处理地籍实体间复杂的空间关系时暴露出了一些根本性缺陷,这促使研究者们探索新的计算方法。 ### 拓扑关系的重要性 地籍信息系统(CIS)中,地籍实体(如地块、建筑物、道路等)之间的...

    ICLR 2019 笔记.pdf

    面向对象的表示学习是一种将环境中实体(如物体)识别为独立实体的方法,这种方法可以帮助智能体更好地理解和交互复杂的环境。Tejas Kulkarni分享了面向对象表示在强化学习中的应用案例。 #### 2.6 学习表示和规划...

    北票事业编招聘2020年考试真题及答案解析完整版.docx

    - **语义理解**:理解文本的真实含义,而不仅仅是表面文字。例如,第六题要求理解“在所有的时刻欺骗所有的人”这一说法的逻辑。 ### 3. 机器学习与数据分析 在处理大量文本数据时,机器学习算法可以帮助我们自动...

    初学者需要掌握的数据库设计词汇对照表.txt(数据库的一些专用词汇都在这,我在网上总结了好久才出来

    泛化是实体关系建模中的概念,用于表示一个实体类是另一个实体类的特例。泛化关系帮助简化模型,减少重复。 ### 61. Generalization Hierarchy 泛化层次是实体类之间的分层结构,显示了实体类之间的继承关系。在...

    官渡2016年事业编招聘考试真题及答案解析完整版.docx

    1. 人类知识的发展:这段话强调了人类知识的积累是一个不断扩展和深化的过程,意味着我们需要不断学习和探索未知。这提示我们在备考过程中,应保持求知的热情和对新知识的追求。 2. 心理状态与对待西方的态度:这里...

    项目八 认识自然语言处理-任务1掌握自然语言处理的基本概念.pptx

    5. **语用分析**:考虑上下文和社会文化背景,以更准确地理解文本的真实意图和隐含意义。 #### 五、自然语言处理的应用场景 1. **机器翻译**:自动将一种语言翻译成另一种语言。 2. **文本摘要**:从大量文本中...

    文学概论复习要点.doc

    在第二章“文学文本与文体种类”中,文学文本是文学存在的实体,包括语言层、现象层和意蕴层三个层次。诗歌作为一种特殊的文学形式,以其抒情性、想象性和独特的语言结构及意象著称。诗歌的意象和意境是诗人情感与...

    基于建构主义理论的CAD_CAM软件应用课程教学模式改革与实践——以减速器箱体设计为例.pdf

    在教育领域,建构主义理论的应用越来越广泛,尤其在技术类课程如CAD/CAM软件应用课程中具有重要的指导意义。本篇文章以减速器箱体设计为例,探讨了建构主义理论在CAD/CAM软件应用课程教学模式改革中的应用与实践。 ...

    2021贵州电大《哲学引论》阶段性测验任务003-0004参考答案.docx

    此外,文档指出西方传统哲学经历了几次重要的转向,如语言学转向,这标志着哲学研究重点从实体转向语言和意义的探索。西方哲学史上的这些转折对后来的美学理论产生了深远影响,如康德、席勒和黑格尔等人的美学思想。...

    空间分析作业

    通过不断探索不确定性表示、分析和决策支持的新方法,NCGIA的研究成果对于提升地理信息系统的能力、改善空间决策质量具有重要意义。未来的研究将继续聚焦于如何更好地管理和减少空间数据中的不确定性,以满足日益...

    基于CAD_CAM及仿真加工软件构建高职数控专业综合实训教学初探.pdf

    而三维CAD软件,比如UG、Pro/Engineer、Unigraphics NX和Solidworks等,其直观性和设计更改的便利性尤为突出,能够有效地将设计者的意图转化为三维实体,并通过软件直接生成二维工程图,大大提高了设计效率和准确性...

    软件工程与自然语言处理.pptx

    - **语义理解:**准确理解文本的真实含义。 - **多语言处理:**处理不同语言之间的差异和特点。 - **文本生成:**生成高质量的自然语言文本。 #### 第三章:软件工程与自然语言处理的结合 **软件工程在自然语言...

    Virtual reality technology.docx

    例如,通过构建实函数和虚函数来模拟量子态的变化过程,这对于理解和探索量子算法具有重要意义。 3. **产品展示**:虚拟现实技术使得产品可以直接通过虚拟屏幕展示给用户,这种展示方式不仅提升了用户体验,还为...

    毕业设计:基于图神经网络的异构图表示学习和推荐算法研究.zip

    在本毕业设计中,主题聚焦于“基于图神经网络的异构图表示学习和推荐算法研究”。...同时,这也是对图神经网络在异构图表示学习上的一个深入研究,对于理解和优化这类复杂网络结构的应用具有重要意义。

Global site tag (gtag.js) - Google Analytics