时间紧张,先记一笔,后续优化与完善。
对于数据的持久化问题,我们很容易想到,也很长用到持久化框架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文件的内容类似下面所示:
MySqlDS
jdbc:mysql://localhost/ejb3
com.mysql.jdbc.Driver
root
root
……….
创立一个ejb项目:
以上“test”这个名称是用来跟指定的数据库打交道的。
心是一棵树,爱与希望的根须扎在土里,智慧与情感的枝叶招展在蓝天下。无论是岁月的风雨扑面而来,还是滚滚尘埃遮蔽了翠叶青枝,它总是静默地矗立在那里等待,并接受一切来临,既不倨傲,也不卑微。
心是一棵树,一个个故事被年轮携载;一回回驿动与飞鸟相约;一次次碰撞使它绵密柔韧;一幕幕经历造就了它博广的胸怀。心是一棵树,独木不成林。因此,树与树既独立又相联,心与心既相异又相亲。
JNDI Data Source按照图片上面输入(MySqlDs是刚才的数据源名称)
在创立实现以后,主动在META-INF目录下添加了persistence.xml文件:
这个配置文件是为了寻觅我们上面创立的数据库的。
开发持久化实体bean:
@Entity
public class Person {
private int id;
private String name;
/**
* @return Returns the id.
*/
@Id
@GeneratedValue
public 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映射的内容大家可以另行参考,这里不再详细说明。
文章结束给大家分享下程序员的一些笑话语录: 一条狗在街上闲逛,看见橱窗里一张告示:「招聘程序员。会编程,有团队精神,至少精通两种语言。均等机会。」
那条狗就进去申请,但是被拒绝了。
「我不能雇一条狗在公司里做事。」经理说。
狗不服气,指着告示上「均等机会」几字抗议。
经理没法,叹了口气,不屑地问道:「你会编程吗?」
那条狗默默地走到电脑前,编了个程序,运作准确。
「你有团队精神吗?」经理问。
那条狗掉头看了看门外,一大群野狗在外面虎视耽耽。
「我真的不能雇狗做这份工作。」经理气急败坏地说。
「就算会编程、有团队精神,但是我需要的雇员至少要能精通两种语言。」
那条狗抬头看着经理说:「喵-噢。」
--------------------------------- 原创文章 By
持久化和框架
---------------------------------