Ejb 例子 数据表: /*==============================================================*/ /* DBMS name: Sybase SQL Anywhere 11 */ /* Created on: 2/21/2011 5:50:04 AM */ /*==============================================================*/ if exists( select 1 from sys.systable where table_name='user' and table_type in ('BASE', 'GBL TEMP') ) then drop table "user" end if; /*==============================================================*/ /* Table: "user" */ /*==============================================================*/ create table "user" ( id integer not null, username varbinary(255) null, password varbinary(255) null, constraint PK_USER primary key clustered (id) ); 实体bean User.java package org.cst.user.ejb; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import static javax.persistence.GenerationType.IDENTITY; import javax.persistence.Id; import javax.persistence.Table; /** * User entity. @author MyEclipse Persistence Tools */ @Entity @Table(name = "user", catalog = "user1") public class User implements java.io.Serializable { // Fields /** * */ private static final long serialVersionUID = 1L; private Integer id; private String password; private String username; // Constructors /** default constructor */ public User() { } /** full constructor */ public User(String password, String username) { this.password = password; this.username = username; } // Property accessors @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "id", unique = true, nullable = false) public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @Column(name = "password") public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } @Column(name = "username") public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } } 会话bean package org.cst.user.ejb; import java.util.List; import javax.ejb.Remote; @Remote public interface UserFacadeRemote { public void save(User entity); public void delete(User entity); public User update(User entity); public User findById(Integer id); public List<User> findByProperty(String propertyName, final Object value); public List<User> findByPasswordList(Object password); public List<User> findByUsernameList(Object username); public List<User> findAll(); public User findByUserName(String username); public List<User> findAll1( Integer pageSize ,Integer pageNow); } 实现类userFacade package org.cst.user.ejb; import java.util.List; import java.util.logging.Level; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; @Stateless public class UserFacade implements UserFacadeRemote { // property constants public static final String PASSWORD = "password"; public static final String USERNAME = "username"; @PersistenceContext private EntityManager entityManager; public void save(User entity) { LogUtil.log("saving User instance", Level.INFO, null); try { entityManager.persist(entity); LogUtil.log("save successful", Level.INFO, null); } catch (RuntimeException re) { LogUtil.log("save failed", Level.SEVERE, re); throw re; } } public void delete(User entity) { LogUtil.log("deleting User instance", Level.INFO, null); try { entity = entityManager.getReference(User.class, entity.getId()); entityManager.remove(entity); LogUtil.log("delete successful", Level.INFO, null); } catch (RuntimeException re) { LogUtil.log("delete failed", Level.SEVERE, re); throw re; } } public User update(User entity) { LogUtil.log("updating User instance", Level.INFO, null); try { User result = entityManager.merge(entity); LogUtil.log("update successful", Level.INFO, null); return result; } catch (RuntimeException re) { LogUtil.log("update failed", Level.SEVERE, re); throw re; } } public User findById(Integer id) { LogUtil.log("finding User instance with id: " + id, Level.INFO, null); try { User instance = entityManager.find(User.class, id); return instance; } catch (RuntimeException re) { LogUtil.log("find failed", Level.SEVERE, re); throw re; } } @SuppressWarnings("unchecked") public List<User> findByProperty(String propertyName, final Object value) { LogUtil.log("finding User instance with property: " + propertyName + ", value: " + value, Level.INFO, null); try { final String queryString = "select model from User model where model." + propertyName + "= :propertyValue"; Query query = entityManager.createQuery(queryString); query.setParameter("propertyValue", value); return query.getResultList(); } catch (RuntimeException re) { LogUtil.log("find by property name failed", Level.SEVERE, re); throw re; } } public List<User> findByPasswordList(Object password) { return findByProperty(PASSWORD, password); } public List<User> findByUsernameList(Object username) { return findByProperty(USERNAME, username); } @SuppressWarnings("unchecked") public List<User> findAll() { LogUtil.log("finding all User instances", Level.INFO, null); try { final String queryString = "select model from User model"; Query query = entityManager.createQuery(queryString); return query.getResultList(); } catch (RuntimeException re) { LogUtil.log("find all failed", Level.SEVERE, re); throw re; } } public User findByUserName(String username){ User user; String sql ="select o from User o where o.username=:username"; try { Query query = entityManager.createQuery(sql); query.setParameter("username", username); user = (User)query.getSingleResult(); } catch (Exception re){ LogUtil.log("find username", Level.SEVERE, re); return null; } return user; } @SuppressWarnings("unchecked") public List<User> findAll1( Integer pageSize ,Integer pageNow) { LogUtil.log("finding all User instances pagenation"+pageSize+":"+pageNow, Level.INFO, null); Integer first=(pageNow-1)*pageSize; Integer size=pageSize; Query query; try{ final String sql ="select model from User model"; query = entityManager.createQuery(sql).setFirstResult(first).setMaxResults(size); }catch(RuntimeException re){ throw re; } return query.getResultList(); } }