Java 可以用JDBC持久化POJO吗?

Java 可以用JDBC持久化POJO吗?,java,jpa,jdbc,pojo,persist,Java,Jpa,Jdbc,Pojo,Persist,愚蠢的qeustion:我想知道是否有可能像JPA一样用JDBC持久化POJO 假设我有一个包含一个字段的类“A” public class A implements Serializable{ public String someString = "asd"; } 现在让我们假设我有一个A(A myA=newa();)的实例 我的问题是:是否可以用JDBC持久化“myA”,还是必须持久化字符串。或者,当我想加载“myA”时,我可以加载实例“myA”吗?或者我必须通过加载字符串来构建

愚蠢的qeustion:我想知道是否有可能像JPA一样用JDBC持久化POJO

假设我有一个包含一个字段的类“A”

public class A implements Serializable{

    public String someString = "asd";
}
现在让我们假设我有一个
A
A myA=newa();
)的实例


我的问题是:是否可以用JDBC持久化“myA”,还是必须持久化字符串。或者,当我想加载“myA”时,我可以加载实例“myA”吗?或者我必须通过加载字符串来构建“myA”,并使用加载的字符串创建一个新的实例表单。

通常,您可以使用JDBC持久化字节流。在这种情况下,您应该使用BLOB(如果是文本流,则使用CLOB)

所以,如果类A真的实现了可序列化接口,您可以将其序列化为ByTestStream并存储

但是,我仍然建议您存储字符串。 这是因为使用BLOB/CLOB比使用字符串慢得多


希望这有助于

您必须以某种方式进行映射(在持久化和检索之前)

一种方法是创建我喜欢调用fillX的方法,您可以在其中手动进行映射(java代码),或者在类中创建某种约定,比如name,在DB中使用column

例如,这一点做得很好。在文档中,你可以看到谁做了什么


在大多数情况下,使用对象关系映射(如JPA)是一种可行的方法,但这并不总是一种选择

您可以将序列化的Java对象存储到数据库中;e、 g.使用Blob类型

但这通常不是一个好主意:

  • 执行SQL查询以任何非平凡的方式测试序列化对象的状态是不切实际的

  • 序列化对象往往对对象代码中的更改很敏感。处理这一点可能会很尴尬,不处理它会使数据库中的序列化对象无法再反序列化

若要将POJO持久化到关系数据库,最好使用对象关系映射,如JPA或Hibernate