【问题标题】:Directly importing java object into mysql table with columns being the object's variables将java对象直接导入mysql表,列是对象的变量
【发布时间】:2012-08-06 20:01:44
【问题描述】:

假设我有一个带有变量 x、y 和 z 的 Java 对象,我想将它自动导入到具有列 id、x、y 和 z 的 MySQL 数据库表中。有没有一种简单的方法可以完成,还是我必须为每个单独的类手动完成?

谢谢。

编辑:通过“自动”,就像我可以做类似的事情:

some_instance.importIntoDB(database_table_name)

some_instance = extractFromDB(database_table_name, conditions);

显然,它不会那么简单,但我正在寻找类似于对象序列化和将 java 对象转换为 XML 并返回的简化的东西。

【问题讨论】:

  • “自动”是什么意思?价值观从何而来?
  • 感谢关键字,现在正在研究 J2EE。无论谁反对这一点,请注意并不是每个人都在学校专门从事软件工程。

标签: java mysql orm import object-relational-model


【解决方案1】:

回答我自己的问题,因为其他人认为这太琐碎了,不能只关心关键字答案:

Java EE 有一个包(持久性)专门处理将 Java 对象直接与 MySQL 表链接。

1.制作persistence.xml

此方法的核心组件是定义一个 persistence.xml 文件,该文件指定与 Java-MySQL 映射相关的各种属性。通常,Java IDE(即 Netbeans、Eclipse)将有一个接口来处理生成适当的 persistence.xml。

2。 EntityManager 对象

Java EE 中的 EntityManager 是处理对象映射的关键控制器类。它可以由

生成
EntityManager em = Persistence.createEntityManagerFactory(
        [PERSISTENCE_UNIT]).createEntityManager();

其中 [PERSISTENCE_UNIT] 是在创建“persistence.xml”文件时指定的“持久性单元名称”(通过 IDE 接口)

如何使用 EntityManager 的示例可以在这里找到: http://docs.oracle.com/javaee/6/tutorial/doc/gijst.html

3.标记对象类

需要映射到数据库的数据类型需要使用以@开头的注释进行标记,以指定它们的使用方式。可以在以下链接中找到示例:http://hop2croft.wordpress.com/2011/07/06/jpa-basic-example-with-entitymanager-spring-and-maven/

注意:此链接的作者使用 Maven 和 Spring。如果正在使用 Netbeans,则可以忽略大部分页面,唯一相关的部分是定义“Car”类的部分(只需搜索“public class Car”),它提供了如何标记的教育示例上课。

注2:由于作者使用的是Spring,很多出现在“Car.java”之外的注解,比如@Transactional,可能不适用。

用户在此过程中可能遇到的一个问题是主键的处理,这些主键通常设置为“自动递增”。此页面解决了在将新对象实例插入数据库时​​让系统自动处理主键的问题:http://www.developerscrappad.com/408/java/java-ee/ejb3-jpa-3-ways-of-generating-primary-key-through-generatedvalue/

最后,最好将所有具有@Entity 标记的类/对象添加到 persistence.xml,因为如果不这样做可能会导致运行时问题。

希望这可以帮助其他新手,否则他们可能会因为提出我刚刚提出的同样明显无知的问题而被否决。

【讨论】:

    猜你喜欢
    • 2019-06-12
    • 2021-06-27
    • 2021-09-25
    • 1970-01-01
    • 2018-11-12
    • 2011-03-10
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多