【发布时间】:2015-01-05 00:21:23
【问题描述】:
我想把这个对象保存到db,但是我不知道该怎么做..
public class Board {
private String name;
private Sticker sticker;
Board(String name, Sticker sticker){
this.name=name;
this.sticker = sticker;
}
}
public interface Sticker {
public void doSomething();
}
public class FreeSticker implements Sticker {
@Override
public void doSomething(){
System.out.println("I'm freeSticker");
}
}
public class ProSticker implements Sticker {
@Override
public void doSomething() {
System.out.println("I'm proSticker");
}
}
现在我想将带有集合名称和一些贴纸(比如说 FreeSticker)的新 Board 对象保存到数据库。如何? name 很简单,因为在每个 db 中我们都有 String 类型,但是 Sticker 呢?我知道,我可以为 FreeSticker 和 ProSticker 创建另一个表,但是当我们有超过 2 个 Sticker 实现时,这很复杂。我不是要求超级解决方案,但请给我一些教程的链接,因为我找不到任何关于此的信息。谢谢:)
【问题讨论】:
-
您的
Sticker不包含任何属性,也不会更改Board的属性。但万一它改变了 Board 对象的任何属性,即使如此,Board 表的架构仍将保持不变。 -
您的
Sticker实现没有状态。你打算保存什么? -
对于一般的
ORM信息,请查看hibernate.org/orm/what-is-an-orm -
如果您想存储对象但不需要使用数据库功能(即使用 SQL 访问它们),那么您可以对 blob 使用序列化。在标准 Java 教程中搜索序列化。
-
哦,这只是示例,您可以假设 Sticker 实现具有状态,例如某些字段内容或名称..
标签: java database class interface