2、举个例子,比如图书管理系统,那个模型逻辑就是对象“借阅人”--借书--“书籍”--验证--借阅卡,就是简单的模型层逻辑,也就是你将业务中的对象抽取出来,看成一个一个的对象模型。
被序列化后的对象存放到数据库中,或者将该对象对应的文件的路径存放到数据库中。
反序列化的时候按文件将代表对象的数据流读入内存,然后反序列化一个原来的对象就行了。
关于序列化和反序列化,可以参考这个例子。放在数据库中的情况,应该完全类似。
import javaioFile;import javaioFileInputStream;
import javaioFileOutputStream;
import javaioObjectInputStream;
import javaioObjectOutputStream;
import javaioSerializable;
public class TestSerialization {
public static void main(String[] args) {
TestSerialization ts=new TestSerialization();
String serializationFile=tswriteObjectIntoFile(new KeyInfo("xm","xm'password"));
Systemoutprintln(tsgetObjectFromFile(serializationFile));
}
/
对象序列化并写入到文件中
@param info
/
public String writeObjectIntoFile(KeyInfo info){
String objectFileName=SystemcurrentTimeMillis()+"-KeyInfo-Serializationout";
try {
FileOutputStream fos=new FileOutputStream(objectFileName);
ObjectOutputStream oos =new ObjectOutputStream(fos);
ooswriteObject(info);
oosflush();
oosclose();
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return SystemgetProperty("userdir")+Fileseparator+objectFileName;
}
/
反序列化
@param infoFile
@return
/
public KeyInfo getObjectFromFile(String infoFile){
try {
FileInputStream fis=new FileInputStream(infoFile);
ObjectInputStream ois=new ObjectInputStream(fis);
return (KeyInfo)oisreadObject();
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return null;
}
}
class KeyInfo implements Serializable {
/
/
private static final long serialVersionUID = 1L;//如果更改了KeyInfo的任何地方,改变这个值。反序列就不会成功。
public String user;
public String pwd ;
/
@return the user
/
public String getUser() {
return user;
}
/
@param user the user to set
/
public void setUser(String user) {
thisuser = user;
}
/
@return the pwd
/
public String getPwd() {
return pwd;
}
/
@param pwd the pwd to set
/
public void setPwd(String pwd) {
thispwd = pwd;
}
public KeyInfo(String user, String pwd) {
super();
thisuser = user;
thispwd = pwd;
}
public KeyInfo() {
super();
// TODO Auto-generated constructor stub
}
/ (non-Javadoc)
@see javalangObject#toString()
/
@Override
public String toString() {
return "KeyInfo [user=" + user + ", pwd=" + pwd + "]";
}
既然是java 不如试试Derby这个数据库,应该很符合你的要求而且网上资料很多哦在这里也不赘述了。
Derby是一个开源的、100% Java编写的、与平台无关的、易管理的关系数据库管理系统。Derby为用户提供了轻量的标准数据库引擎,它可以紧密的嵌入到任何基于Java的解决方案中。Derby确保数据完整性,并提供负责的事务处理 *** 作。默认的配置中不包含任何独立的数据库服务器。同时,Derby 的安装过程非常简单,只需要将其 jar 文件复制到系统中并为您的项目添加该 jar 文件即可。
Derby拥有一个令人惊奇的特性列表。它可以支持关系数据库中的所有企业级的特性,包括崩溃恢复、事务回滚和提交、行/表级锁、视图、主键/外键约束、触发器、子查询表达式,等等。一部分的列表特性使Derby从其他的Java 关系数据库管理系统中分离出来。
Derby可以有两种部署方式:
嵌入式:Derby被单个用户的Java应用程序使用,在这种模式下,Derby和应用程序运行在同一个JVM中。Derby对于终端用户几乎是透明的,因为它的启动和终止都是由应用程序来控制,而不需要任何的管理。
服务器模式:Derby由应用程序启动,此时通过用户可以通过网络连接。在这种模式下,Derby运行在服务器主机的JVM中。其他JVM的应用程序通过连接服务器来访问数据库。
以上就是关于JAVA项目开发里 模型层的逻辑是什么全部的内容,包括:JAVA项目开发里 模型层的逻辑是什么、(java)如何将数据库中的对象逆向成数据模型(以oracle为例)、java 数组过大,想用一个轻量级的数据库用来存储这个数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)