自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Eclipse+JBoss+EJB3編寫(xiě)第一個(gè)實(shí)體Bean程序

開(kāi)發(fā) 后端
本文講解如何使用Eclipse+JBoss+EJB3編寫(xiě)第一個(gè)實(shí)體Bean程序。EJB3容器通過(guò)EntityManager對(duì)象管理實(shí)體Bean,該類(lèi)最主要的功能就是在記錄和JavaBean之間進(jìn)行互相映射。

EJB3容器通過(guò)EntityManager對(duì)象管理實(shí)體Bean,該類(lèi)最主要的功能就是在記錄和JavaBean之間進(jìn)行互相映射。例如,我們從數(shù)據(jù)庫(kù)中查出一條記錄,這條記錄有field1和field2兩個(gè)字段,假設(shè)有一個(gè)JavaBean,也包含了field1和field2屬性。那么EntityManager可以將這條記錄中的值映射到JavaBean的field1和field2屬性中。也就是說(shuō),在數(shù)據(jù)庫(kù)中的一條記錄就對(duì)應(yīng)于一個(gè)JavaBean的對(duì)象實(shí)例。下面將給出一個(gè)簡(jiǎn)單的例子來(lái)演示如何來(lái)實(shí)現(xiàn)一個(gè)應(yīng)用實(shí)體Bean的程序。在這個(gè)例子中使用無(wú)狀態(tài)的session bean通過(guò)EntityManager對(duì)象從數(shù)據(jù)表中查找一條記錄,將該記錄映射成實(shí)體Bean的對(duì)象實(shí)例,最后通過(guò)session bean的方法返回該記錄的某個(gè)字段值。
   
表名:t_users
表中的字段和記錄
id    name    password_md5
1     bill    TaokQpoNJQb02eafO/JgYw==

一、配置JBoss的數(shù)據(jù)庫(kù)連接池

在\server\default\deploy目錄中建立一個(gè)mysql-ds.xml文件,內(nèi)容如下:

  1. < xml version="1.0" encoding="UTF-8"?> 
  2. < datasources> 
  3.   < local-tx-datasource> 
  4.     < jndi-name>MyPIMjndi-name> 
  5.     < connection-url>jdbc:mysql://localhost:3306/pimconnection-url> 
  6.     < driver-class>com.mysql.jdbc.Driverdriver-class> 
  7.     < user-name>rootuser-name> 
  8.     < password>1234password> 
  9.     < exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorterexception-sorter-class-name> 
  10.     < metadata> 
  11.        < type-mapping>mySQLtype-mapping> 
  12.     < metadata> 
  13.   < local-tx-datasource> 
  14. < datasources> 

mysql-ds.xml文件用于配置mysql的數(shù)據(jù)源。實(shí)際上,該文件可以在\docs\examples\jca目錄中找到,讀者只需要將數(shù)據(jù)庫(kù)名、用戶(hù)名和密碼以及jndi名改成自己的就可以了。最后將修改后的mysql-ds.xml文件復(fù)制到deploy目錄中(必須叫這個(gè)文件名)。

連接mysql數(shù)據(jù)庫(kù)需要一個(gè)jdbc驅(qū)動(dòng)(jar文件),將該文件復(fù)制到\server\default\lib目錄中。

二、編寫(xiě)實(shí)體Bean

User類(lèi)是一個(gè)實(shí)體Bean,代碼如下:

  1. package entity;  
  2.  
  3. import javax.persistence.Column;  
  4. import javax.persistence.Entity;  
  5. import javax.persistence.Id;  
  6. import javax.persistence.Table;  
  7.  
  8. @Entity 
  9. @Table(name = "t_users")  
  10. public class User   
  11. {  
  12.     private int id;  
  13.     private String name;  
  14.     private String password;  
  15.     @Id 
  16.     public int getId()  
  17.     {  
  18.           
  19.         return id;  
  20.     }  
  21.     public void setId(int id)  
  22.     {  
  23.         this.id = id;  
  24.     }  
  25.     public String getName()  
  26.     {  
  27.         return name;  
  28.     }  
  29.     public void setName(String name)  
  30.     {  
  31.         this.name = name;  
  32.     }  
  33.     @Column(name = "password_md5")  
  34.     public String getPassword()  
  35.     {  
  36.         return password;  
  37.     }  
  38.     public void setPassword(String password)  
  39.     {  
  40.         this.password = password;  
  41.     }  
  42.       
  43. }  

三、配置persistence.xml文件

在META-INF目錄中建立一個(gè)persistence.xml文件,代碼如下:

  1. < xml version="1.0" encoding="UTF-8"?> 
  2. < persistence xmlns="http://java.sun.com/xml/ns/persistence" 
  3.     < xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence  
  5.     http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"  
  6.     version="1.0"> 
  7.     < persistence-unit name="myentity"> 
  8.         < jta-data-source>java:/MyPIMjta-data-source> 
  9.         < properties> 
  10.             < property name="hibernate.hbm2ddl.auto" value="none" /> 
  11.             < property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> 
  12.         < properties> 
  13.     < persistence-unit> 
  14. < persistence> 

其中元素的值就是mysql-ds.xml文件中配置的數(shù)據(jù)源名。如果使用注釋配置session bean,META-INF目錄下只有兩個(gè)文件即可:MANIFEST.MF和persistence.xml。

四、在session bean中調(diào)用實(shí)體bean

  1. package service;  
  2.  
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5. import javax.ejb.Stateless;  
  6. import javax.persistence.EntityManager;  
  7. import javax.persistence.PersistenceContext;  
  8. import entity.User;  
  9.  
  10. @Stateless 
  11. public class UserBean implements UserBeanRemote  
  12. {  
  13.     @PersistenceContext(unitName="myentity")  
  14.     protected EntityManager em;  
  15.  
  16.     @Override 
  17.     public String getPassword()  
  18.     {  
  19.         User user = em.find(User.class1);          
  20.         return user.getPassword();  
  21.     }  
  22. }  

其中UserBeanRemote為遠(yuǎn)程接口。要注意的是,@PersistenceContext注釋的unitName屬性值必須和persistence.xml文件中的元素的name屬性值相同。

五、客戶(hù)端調(diào)用session bean

  1. InitialContext ctx = new InitialContext();  
  2. UserBeanRemote userBeanRemote = (UserBeanRemote) ctx.lookup("MyEnterprise/UserBean/remote");  
  3. System.out.println(userBeanRemote.getPassword()); 

由于本書(shū)的程序都在一個(gè)ear包中,因此,默認(rèn)的jndi名是MyEnterprise/UserBean/remote,如果直接發(fā)布包含EJB的jar包,默認(rèn)的jndi名稱(chēng)為UserBean/remote。

運(yùn)行上面的代碼后,將輸出如下的字符串:

TaokQpoNJQb02eafO/JgYw==

【編輯推薦】

  1. Eclipse+JBoss+EJB3配置文件發(fā)布Session Bean
  2. Eclipse+JBoss+EJB3編寫(xiě)有狀態(tài)的SessionBean
  3. Eclipse+JBoss+EJB3的Session Bean注釋方法
  4. Eclipse+JBoss+EJB3使用Session Bean的本地接口
  5. Eclipse+JBoss+EJB3編寫(xiě)第一個(gè)無(wú)狀態(tài)的SessionBean
責(zé)任編輯:book05 來(lái)源: blogjava
相關(guān)推薦

2009-06-10 12:54:35

無(wú)狀態(tài)的SessionEclipse+JBo

2009-06-24 15:56:47

實(shí)體Bean連接策略

2009-06-24 15:59:04

消息驅(qū)動(dòng)Bean

2009-06-10 11:36:45

有狀態(tài)的SessionEclipse+JBo

2009-06-10 11:42:26

Session BeaEclipse+JBo

2009-06-10 11:09:40

配置文件SessionEclipse+JBo

2009-06-10 12:34:01

Session BeaEclipse+JBo

2009-06-24 15:51:47

Entity Bean一對(duì)多映射

2009-06-24 15:49:54

Entity Bean一對(duì)一映射

2009-06-24 15:53:08

Entity Bean多對(duì)多映射

2009-06-24 15:55:09

EclipseJBossJ2ee

2009-06-24 15:57:44

JPQL命名查詢(xún)

2009-06-24 15:58:15

EntityManag

2009-06-24 16:00:00

2021-04-07 13:38:27

Django項(xiàng)目視圖

2019-12-31 08:00:00

DebianLinuxApple Swift

2010-03-15 10:37:46

Pthon腳本

2009-06-26 16:07:43

MyEclipse開(kāi)發(fā)Hibernate程序

2012-05-25 15:20:38

XNA

2023-05-19 08:49:58

SQLAlchemy數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)