JPA 全称 Java Persistence API ,是Sun公司定义的一套规范,这套规范有多种实现,用得比较多的是Hibernate的实现和Oracle的实现。两种实现对比一下,Hibernate-entitymanager是开源的,而Oracle的toplink是sun公司官方推荐不过需要收费!当然除了这两个实现还有Apache组织的实现等, 简单介绍完毕。
这里我主要使用hibernate+Jboss做例子
hibernate-entitymanager 在 www.hibernate.org
Jboss 在 www.jboss.org
官方都可以下到
写JPA首先要配置jboss服务器的连接池,先介绍一下JBoss服务器的目录结构
jboss-4.2.2GA
--bin
--client
--docs
|--examples
|--jca
--lib
--server
|--default
|--deploy
|--lib
有些目录我没有列出来,我只列出了这次内容需要使用到的目录
首先要在jca目录下将mysql-ds.xml,拷贝到deploy目录下面,并且打开修改为
<?xml version="1.0" encoding="UTF-8"?> <!-- $Id: mysql-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ --> <!-- Datasource config for MySQL using 3.0.9 available from: http://www.mysql.com/downloads/api-jdbc-stable.html --> <datasources> <local-tx-datasource> <jndi-name>MySqlDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/test</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>root</password> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> <!-- should only be used on drivers after 3.22.1 with "ping" support <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name> --> <!-- sql to call when connection is created <new-connection-sql>some arbitrary sql</new-connection-sql> --> <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql> --> <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml --> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> </datasources>
在mysql的驱动拷贝到server-default-lib目录下面
这样服务器的配置就完成了!
在MyEclipse里面建立一个EJB的工程,建议使用MyEclise6.0以上的开发工具,将Hibernate-entitymanager的lib导入工程,在jboss-4.2.2GA-client 下面找到jboss-ejb3.x.jar和jbossall-client.jar 这两个jar文件也导入工程里面,工程的环境就搭建好了!
代码我就使用附件上传,不多!不过要注意jndi.properties和META-INF目录下面的persistence.xml 这两个文件的写法就可以了!