数据持久化框架(JPA)及其具体实现
来源:互联网 发布:js 循环删除数组元素 编辑:程序博客网 时间:2024/05/16 18:44
对于数据的持久化问题,我们很容易想到,也很长用到持久化框架jpa.
持久化框架实现起来主要包括以下几个部分
1开发持久化bean
Persistence.xml
配置jboss数据源
编写实体类
供业务逻辑类进行调用
2持久化实体管理器EntityManager
3EJB-QL
4OR映射
下面通过具体创建一个实例具体说说这几部分的作用:
配置数据源
拷贝数据库驱动到JBOSS_HOME/server/default/lib下
拷贝docs/examples/jca/mysql-ds.xml到/server/default/deploy目录下,并修改数据库用户名及密码
Mysql-ds.xml文件的内容类似下面所示:
<datasources> <local-tx-datasource> <jndi-name>MySqlDS</jndi-name> <connection-url>jdbc:mysql://localhost/ejb3</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>root</password> ……….
创建一个ejb项目:
以上“test”这个名称是用来跟指定的数据库打交道的。
JNDI Data Source按照图片上面输入(MySqlDs是刚才的数据源名称)
在创建完成之后,自动在META-INF目录下添加了persistence.xml文件:
这个配置文件是为了寻找我们上面创建的数据库的。
开发持久化实体bean:
@Entitypublic class Person {private int id;private String name; /** * @return Returns the id. */@Id@GeneratedValuepublic int getId() {return id;} /** * @param id The id to set. */public void setId(int id) {this.id = id;} /** * @return Returns the name. */public String getName() {return name;} /** * @param name The name toset. */public void setName(String name) {this.name = name;}}
在JBOSS应用服务器中,JPA是由Hibernate来作为底层的实现,因此,我们可以在persitence.xml中配置一些与Hibernate相关的属性,比如下面的配置:
部署EJB项目之后,即可以看到JBOSS自动导出了数据库表。
至此,一个持久化的框架就开发完毕,下面说怎样用业务逻辑类来调用它。
@Stateless @Remote public class PersonManagerBean implements PersonManager{ @PersistenceContext(unitName="test") protected EntityManager em; public void addPerson(String name) {Person p = new Person();p.setName(name);em.persist(p);}}
PersistenceContext是实体化管理器,通过它我们可以直接获取后台的实体并进行操作。
EJB-QL:
为了实现在容器管理持久性实体类型ejb组件中,查找(finder)方法和选择(select)方法中数据库查询以及对该组件的容器管理关系查询过程中查询语言的规范化,ejb2.0规范以92版结构化查询语言(sql-92)规范为蓝本,定义了ejb规范中标准查询语言——ejb ql。
更多关于ejb-ql语言和OR映射的内容大家可以另行参考,这里不再详细说明。
- 数据持久化框架(JPA)及其具体实现
- 数据持久化框架(JPA)
- JPA规范及其它持久层框架
- JPA数据持久化技术
- EJB——JPA持久化数据
- Spring整合Hibernate实现JPA持久化
- SSH框架中Hibernate实现对数据的持久化
- 【面试之持久化框架】hibernate、mybatis、jpa规范
- 持久化框架ibatis、hibernate和Jpa优缺点分析
- JPA注解持久化
- 07.JPA持久化
- JPA+Hibernate持久化数据:detached entity passed to persi
- js实现数据持久化
- JPA概述,JPA与EJB关系,以及Java中的数据持久化技术概述
- JPA Guice的JPA持久化
- SSH框架-HIbernate之数据持久化
- iOS开发 - CoreData框架 数据持久化
- iOS开发 - CoreData框架 数据持久化
- python中的generator
- 嵌入式中的宿主机和目标机
- SVN 错误集合
- 传统企业的电商逻辑思考
- C语言多线程编程(windows下)【用pthread】
- 数据持久化框架(JPA)及其具体实现
- POSIX详解pthread_mutex_lock
- Cocos2D-X游戏开发技术精解
- Json概述以及python对json的相关操作
- Microsoft SQL Server Management Studio -- Restore database in a difference server
- ubuntu10.04 无线上网
- C++中运算符的重载
- 浅谈Xpath
- STL学习(四)阶段简单总结