2

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

谢谢。

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

some_instance.importIntoDB(database_table_name)

或者

some_instance = extractFromDB(database_table_name, conditions);

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

4

1 回答 1

2

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

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 是一个好主意,因为如果不这样做可能会导致运行时问题。

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

于 2012-08-09T21:16:43.133 回答