读书人

ejb3学习札记4

发布时间: 2012-11-06 14:07:00 作者: rapoo

ejb3学习笔记4

1数据源: 详细定义

??? <jndi-name>MSSQLDS</jndi-name>
??? <connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=EJB</connection-url>
??? <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
??? <user-name>sa</user-name>
??? <password>123456</password>

?

2 配置实体bean

?

  1. @SuppressWarnings("serial")??@Entity??
  2. @Table(name="person")?? public?class?Person?implements?Serializable{??
  3. ??????????private?Integer?id;??
  4. ????private?String?name;?? ??????
  5. ????public?Person(){?? ????}??
  6. ??????????public?Person(String?name){??
  7. ????????this.name?=?name;?? ????}??
  8. ??????????@Id?@Column(name="id")?@GeneratedValue(strategy=GenerationType.IDENTITY)??
  9. ????public?Integer?getId()?{?? ????????return?id;??
  10. ????}??????public?void?setId(Integer?id)?{??
  11. ????????this.id?=?id;?? ????}??
  12. ??????????@Column(name="name",?length=20,?nullable=false)??
  13. ????public?String?getName()?{?? ????????return?name;??
  14. ????}??????public?void?setName(String?name)?{??
  15. ????????this.name?=?name;?? ????}??
  16. ??????????@Override??
  17. ????public?int?hashCode()?{?? ????????final?int?prime?=?31;??
  18. ????????int?result?=?1;?? ????????result?=?prime?*?result?+?((id?==?null)???0?:?id.hashCode());??
  19. ????????return?result;?? ????}??
  20. ????@Override??????public?boolean?equals(Object?obj)?{??
  21. ????????if?(this?==?obj)?? ????????????return?true;??
  22. ????????if?(obj?==?null)?? ????????????return?false;??
  23. ????????if?(getClass()?!=?obj.getClass())?? ????????????return?false;??
  24. ????????final?Person?other?=?(Person)?obj;??????????if?(id?==?null)?{??
  25. ????????????if?(other.id?!=?null)?? ????????????????return?false;??
  26. ????????}?else?if?(!id.equals(other.id))?? ????????????return?false;??
  27. ????????return?true;?? ????}??
  28. ??????}??

??

?

?

3 在jar META-INF 创建persistence.xml

?

  1. <?xml?version="1.0"?encoding="UTF-8"??>??<persistence?xmlns="http://java.sun.com/xml/ns/persistence"??
  2. ????????????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?? ????????????xsi:schemaLocation="http://java.sun.com/xml/ns/persistence?http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"?version="1.0">??
  3. ????<persistence-unit?name="itcast"?transaction-type="JTA">?? ????????<jta-data-source>java:MSSQLDS</jta-data-source>??
  4. ????????<properties>??????????????<property?name="hibernate.hbm2ddl.auto"?value="update"/>??
  5. ????????????<property?name="hibernate.show_sql"?value="true"/>?? ????????????<property?name="hibernate.format_sql"?value="true"/>??
  6. ????????</properties>??????</persistence-unit>??
  7. </persistence>??

??

4 dao

?

  1. @Stateless??@Remote(PersonService.class)??
  2. public?class?PersonServiceBean?implements?PersonService{?? ????@PersistenceContext(unitName="itcast")?EntityManager?em;??
  3. ??????????public?void?delete(Integer?personId)?{??
  4. ????????em.remove(em.getReference(Person.class,?personId));?? ????????//返回而?代理对象 ??
  5. ????}????
  6. ????public?Person?getPerson(Integer?personId)?{?? ????????return?em.find(Person.class,?personId);??
  7. ????}????
  8. ????@SuppressWarnings("unchecked")?? ????public?List<Person>?getPersons()?{??
  9. ????????return?(List<Person>)?em.createQuery("?select?p?from?Person?p?").getResultList();?? ????}??
  10. ??????public?void?save(Person?person)?{??
  11. ????????em.persist(person);??????}??
  12. ??????public?void?update(Person?person)?{??
  13. ????????em.merge(person);??????}??
  14. }??

?

在dao 中:

@PersistenceContext(unitName="foshanshop") protected EntityManager em;

?

属性:

@Transient 实体bean默认全体成员都会持久, 该注释表示不持久某项

@Enumerated(EnumType.STRING)

public CommentType getType(){

}

?

public enum CommentType{

???? NEWS{public String getName(){reutrn "新闻";}},

???? PRODUCT{public String getName(){reutrn "产品";}};

???? public abstract String getName();

}

?

@Lob 映射Blob? Clob

@Basic(fetch=FetchType.LAZY) 加在lob大文件时 延迟加载

@Temporal 指定时间类型

@Embedded

读书人网 >编程

热点推荐