java随记

坚持就是胜利!

 

ejb3 jsf实用实例


有朋友问到使用ejb3时关于jsf实现多行选择编辑记录的问题。其实按照jsf编程模型也只不过按部就班而已,没有什么好多说的。还是看实例好了。

一,创建表格,插入两条记录备用.

    create table "spring"."dbo"."product"(

        "productid" int not null,

       "category" varchar(10) not null,

       "name" varchar(80) null,

       "descn" varchar(255) null,

        constraint "PK__product__05D8E0BE" primary key ("productid")

)

insert into product (1,’图书’,’计算机应用’,计算机工业出版社’)

insert into product (2,’图书’,’计算机组成原理’,计算机工业出版社’)

二,ejb3的实现

1,             创建一个实体Product 没什么好多说的,只是多增加了一个boolean属性 editor,并且加了@Transient注释用以说明该属性不是持久化字段,增加该字段的目的也仅仅是为了判断哪些记录被选中了,以便处理选中了记录.

2,             创建会话bean

        接口

  package ejb;

import java.util.List;

 

public interface ProductDao {

   

public List getProducts() throws Exception;

   

           public void saveProducts(List<entity.Product> products) throws Exception;

 

          package ejb;

Bean

import javax.ejb.*;

import java.util.List;

import java.util.Iterator;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

import javax.persistence.Query;

import entity.Product;

@Stateful

@Remote(ProductDao.class)

public class ProductDaoBean {

 

 

    @PersistenceContext

    protected EntityManager em;

   

   

   

 public List getProducts()throws Exception{

    

       

         Query query = em.createQuery("from Product");

         List list = query.getResultList();

         em.clear();

         return list;

   

}

 

 

 public void saveProducts(List<Product> products){

 for(Iterator<Product> it = products.iterator();it.hasNext();){    

     Product p = it.next();

     em.merge(p);

 }

}

}

 

3,             jsf页面跟backing bean 前面两篇blog也说过这方面的类容,没什么好说的,也就不好了。

需要说明的是本例服务器采用jboss5.0,数据库用的MS SQL2000.完整实例下载

posted on 2007-06-25 09:00 傻 瓜 阅读(1475) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(7)

我参与的团队

随笔分类

随笔档案

文章分类

友情链接

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜