五、持久化单元
你应用程序的实体集称为持久化单元。你可以在名为 persistence.xml的文件中配置定义你应用程序的持久化单元。这个文件存在于你的 META-INF目录下。你可以将 META-INF 子目录放在你的项目源文件下。本文事例的持续项目,你可以下载,你就会发现源文件的目录结构和图2很相似:
图二:源文件目录结构
请保留地址 http://www.qqread.com/java/2007/11/w381044.html 
图二:源文件目录结构
persistence.xml有许多的功能,但是在开发桌面应用程序的时候,大多数重要的任务是列出你应用程序中所有的实体和对持久化单元命名。列出持久化实体类需要在可移植的 Java SE环境。为本文的实体所写的简单的 persistence.xml会是这样的:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="league" transaction-type="RESOURCE_LOCAL"> <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider> <class>com.sun.demo.jpa.Player</class> <class>com.sun.demo.jpa.Team</class> <properties> <property name="toplink.jdbc.user" value="league"/> <property name="toplink.jdbc.password" value="league"/> <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/league"/> <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/> <property name="toplink.ddl-generation" value="create-tables"/> </properties> </persistence-unit> </persistence>
这个文件只是一个大致的模板,像 NetBeans IDE 5.5这样的工具会给你创建一个正确的框架。本位用到的最为重要的标签如下:
1. persistence-unit
2. provider
3. class
4. property
1. persistence-unit
2. provider
3. class
4. property
持续单元的名称可以是任何你所选择的名称。名称并不一定需要是你数据库的名称或者模型的名称,但是取一致的名称很有帮助的。在这个例子中,持久化单元的名称是 league。当你在 Java SE应用程序中使用此API时,缺省的事务类型是 RESOURCE-LOCAL。 在 Java EE的环境下,你将会看到 JTA事务类型,我的意思就是说实体管理器参与到事务处理之中。如果你不指定类型的话,就会使用缺省的设置,这将很容易使你的应用程序环境发生错误,从一个环境变到了另一个环境。
Provider标签声明了类文件,这个类文件提供初始的 factory方法,来创建一个 EntityManager实例。你的持久化API 实现程序将会提供一些详情,使你获得此标签的正确值。 persistence.xml文件例子展示了 provider类名。
使用 class标签列出你应用程序中的实体类的名称。在本文的举例代码中,就只用到两个实体: com.sun.demo.jpa.Player 和 com.sun.demo.jpa.Team. 完整的包名和类名是必须的。持久化方案提供工具 (persistence provider)通过查阅 persistence.xml 文件中的实体名称,就是确定将应用程序的哪些类映射到关系数据库中去 。
最后,在 Java SE桌面环境,如果Java 命名目录接口( JNDI)查找不能用的话,你应该将数据库的连接信息写到 persistence.xml文件中去。数据库连接属性包括数据库连接的用户名和密码,数据库连接字符串,驱动名称。另外甚至包括在持久化方案提供工具 (persistence provider)属性选项上创建或者撤销新表。属性名称 javax.persistence是保留的属性标签,是规范所定义的,不可改动的。提供商使用他们自己的命名空间,以免和规范发生冲突。先前展示的 persistence.xml 文件中,使用的是 GlassFish实现。它的提供商所制定的属性在 toplink命名空间中,它不是规范本省的一部分。持久化方案提供工具 (persistence provider)将会忽略不在规范里面的所有属性或者不是自己指定供应商的属性。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Java环境安装配置 (5668篇文章)
- Java编程开发手册 (8321篇文章)
- Wlan组网----家庭专题 (4217篇文章)
- Java API (108篇文章)
- Java基础开发篇 (583篇文章)
- 精通Hibernate之映射继承关系(四) (0次浏览)
- 何不将Java与.NET合二为一? (0次浏览)
- Hibernate的JNDI名称绑定分析 (0次浏览)
- 精通Hibernate之映射继承关系(一) (0次浏览)
- 精通Hibernate之映射继承关系(二) (0次浏览)
- 美国计算机教授语出惊人:Java对学生有害 (0次浏览)
- JDK 6 JRE 6 Update 4 (0次浏览)
- 三步教你改善Java代码质量 (0次浏览)
- Java语言入门 简述Java语言回收机制 (0次浏览)
- 2008年Java开发者最迫切的五个期望 (0次浏览)



