首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

EJB3 實體 Bean 入門:從資料庫設定到第一個查詢程式

     編輯:J2EE

完整實作步驟

1. 設定 JBoss 資料源

在 \server\default\deploy 建立 MySQL-ds.xml:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>MyPIM</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/pim</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>1234</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
      <type-mapping>MySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

將 MySQL JDBC 驅動 Jar 放入 \server\default\lib。

2. 撰寫實體 Bean

@Entity
@Table(name = "t_users")
public class User {
    @Id
    private int id;
    private String name;

    @Column(name = "passWord_md5")
    private String passWord;

    // Getter/Setter 略...
}

3. 設定 persistence.xml

置於 META-INF/persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="https://java.sun.com/xml/ns/persistence" version="1.0">
  <persistence-unit name="myentity">
    <jta-data-source>java:/MyPIM</jta-data-source>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="none"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
    </properties>
  </persistence-unit>
</persistence>

jta-data-source 需與資料源 JNDI 名稱一致;persistence-unit name 稍後在 Session Bean 注入時使用。

4. Session Bean 呼叫實體

@Stateless
public class UserBean implements UserBeanRemote {
    @PersistenceContext(unitName = "myentity")
    protected EntityManager em;

    public String getPassWord() {
        User user = em.find(User.class, 1);
        return user.getPassWord();
    }
}

5. 客戶端呼叫

InitialContext ctx = new InitialContext();
UserBeanRemote remote = (UserBeanRemote) ctx.lookup("MyEnterprise/UserBean/remote");
System.out.println(remote.getPassWord());
// 輸出: TaokQpoNJQb02eafO/JgYw==

關鍵概念總結

  • EntityManager:核心介面,負責實體的 CRUD、查詢、生命週期管理。
  • @PersistenceContext:注入 EntityManager,unitName 對應 persistence-unit name。
  • persistence.xml:定義持久化單元、資料源、Hibernate 方言等。
  • JNDI 查找:EAR 部署時預設 JNDI 為 模組名/Bean名/remote。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved