Õ¾ÄÚËÑË÷: ÇëÊäÈëËÑË÷¹Ø¼ü´Ê

µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú J2EE רÌâ ¡ú ѧϰJ2EE_(2)

ѧϰJ2EE_(2)

ժҪ: ѧϰJ2EE_(2)

È«¾Ö(Entity)EJBµÄÓ¦ÓÃ

1¡¢È«¾ÖEJBµÄ×÷ÓÃ

£¨1£©¡¢¿ÉÒÔºÍÊý¾Ý¿âµÄÊý¾Ý½áºÏ²Ù×÷£¬È«¾ÖEJBÌṩ¸÷ÖÖÊý¾Ý²Ù×÷µÄ·½·¨¡£
£¨2£©¡¢È«¾ÖEJBµÄÊý¾Ý¿ÉÒÔ±»¶à¸ö¿Í»§¶Ë¹²ÏíʹÓã¬È«¾ÖEJBÒýÈëÖ÷¼üµÄÓ¦Óã¬Ö÷¼ü¿ÉÒÔ±êʶÿ¸öÈ«¾ÖEJB¡£
2¡¢È«¾ÖEJBµÄ·ÖÀà
È«¾ÖEJB·ÖΪBean³ÖÐøÐÔºÍÈÝÆ÷³ÖÐøÐÔ¡£ËüÃǵÄÇø±ðÈçÏ£º
£¨1£©¡¢Bean³ÖÐøÐÔ½«SQLÓï¾äдÈë´úÂë
(2)¡¢ÈÝÆ÷³ÖÐøÐÔEJB´úÂëûÓÃSQL´¦ÀíÓï¾ä£¬×÷ÓÃXMLÎļþ½øÐÐдÒ壬ÇÒÊÊÓ¦²»Í¬µÄÊý¾Ý¿â¡£
3¡¢È«¾ÖEJBÉúÃüÖÜÆڽṹͼ

»º³å״̬EJB²»ÓëÊý¾Ý±íµÄÊý¾Ý½¨Á¢ÁªÏµ£¬²»´æÔÚÖ÷¼ü£»»º³å״̬EJBͨ¹ýejbCreate·½·¨ºÍejbPostCreate·½·¨»òÕßejbFind·½·¨»ñµÃÖ÷¼ü£¬½¨Á¢ÓëÊý¾Ý±íµÄÊý¾ÝµÄ¹Øϵ£¬µ±»º³å״̬EJBÈ¡µÃÖ÷¼üºó±ã´¦ÓÚ×¼±¸Ê¹ÓÃ״̬£¬Èç¹ûEJBÄÚµÄÔ¶³Ì·½·¨±»Ê¹Óã¬ejbLoad·½·¨Ê×Ïȱ»¼¤»î£¬ÔËÐÐÔ¶³Ì·½·¨£¬È»ºóejbStore±»¼¤»î¡£Ò»¸öÈ«¾ÖEJB¿ÉÒÔÓжà¸ö»º³å״̬ºÍ×¼±¸Ê¹ÓÃ״̬¡£

EJBÖ÷Îļþ£º
package hello;

import java.rmi.*;
import java.sql.*;
import javax.ejb.*;

public class HelloBean
implements EntityBean {
EntityContext entityContext;
String name;


public String ejbCreate() throws CreateException {
System.out.println("ejbCreate");
this.name = name;
return "";
}

//ÔÚejbCreateºóÖ´ÐÐ
public void ejbPostCreate() throws CreateException {
System.out.println("ejbPostCreate");
}

public void ejbRemove() throws RemoveException {
System.out.println("ejbRemove");
}

public String getName() {
System.out.println("getName");
return name;
}

public String ejbFindByPrimaryKey(String name) throws
FinderException, SQLException {
System.out.println("ejbFindByPrimaryKey");
Connection conn = this.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(
"SELECT user, password FROM usertable where user = '" + name + "'");
while (rs.next()) {
String s2 = rs.getString("user");
String s3 = rs.getString("password");
System.out.println("\tUser: " + s2 + "\tPassword: " + s3);
}

return "hufei";
}

//ÔÚÖ´ÐÐÔ¶³Ì·½·¨Ç°±»¼¤»î
public void ejbLoad() {
System.out.println("ejbCreate");
}

//ÔÚÖ´ÐÐÔ¶³Ì·½·¨ºó±»¼¤»î
public void ejbStore() {
System.out.println("ejbStore");
}

public void ejbActivate() {
System.out.println("ejbActivate");
}

public void ejbPassivate() {
System.out.println("ejbPassivate");
}

//µ±µÚ1´ÎÒýÓô´½¨½Ó¿Ú·½·¨Ê±£¬¸Ã·½·¨±»¼¤»î
public void setEntityContext(EntityContext entityContext) {
System.out.println("----------------------------------------------------");
System.out.println("setEntityContext");
this.entityContext = entityContext;
}

public void unsetEntityContext() {
System.out.println("unsetEntityContext");
this.entityContext = null;
}

public Connection getConnection() {
System.out.println("getConnection");
try {
Class.forName("org.gjt.mm.mysql.Driver"); // MySQL
String url =
"jdbc:mysql://172.16.87.10/test?useUnicode=true&characterEncoding=SJIS";
//database name hellodb ,change to your characterEncoding
Connection con = (Connection) DriverManager.getConnection(url, "root", "");
//this.conn = con;
return con;
}
catch (Exception ex) {
ex.printStackTrace();
}
return null;
}

public boolean addUser(String user, String password) {
try {
Connection conn = this.getConnection();
Statement stmt = conn.createStatement();
String sql = "insert into usertable values('" + user + "','" + password + "')";
System.out.println("SQL: " + sql);
boolean success = stmt.execute(sql);
return success;
}
catch (Exception ex) {
ex.printStackTrace();
}
return false;
}

}

EJBÔ¶³Ì½Ó¿Ú£º
package hello;

import javax.ejb.EJBObject;
import java.rmi.RemoteException;

public interface HelloRemote
extends EJBObject {

public String getName() throws RemoteException;

public boolean addUser(String user, String password) throws RemoteException;
}
£Å£Ê£Â´´½¨½Ó¿Ú£º
package hello;

import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import java.sql.SQLException;

public interface HelloRemoteHome
extends EJBHome {

public HelloRemote create() throws CreateException, RemoteException;

public HelloRemote findByPrimaryKey(String name) throws FinderException,
SQLException, RemoteException;
}

¿Í»§¶Ë£º
/**
*

Title:


*

Description:


*

Copyright: Copyright (c) 2004


*

Company:


* @author ºúì³
* @version 1.0
*/

import java.util.*;
import javax.naming.*;
import javax.rmi.*;

import hello.*;

public class HelloClient {

public static void main(String[] args) throws Exception {
//ÉùÃ÷Á´½Ójboss·þÎñÆ÷µÄÊôÐÔÀà
Properties properties;
//ÉùÃ÷Ñ°ÕÒ·þÎñÆ÷¶ÔÏóµÄContextÀà
Context ctx;
//ÉèÖ÷ÃÎÊjboss·þÎñÆ÷µÄ²ÎÊý
properties = new Properties();
properties.put("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
properties.put("java.naming.provider.url", "localhost:1099");
//´´½¨JNDI¶ÔÏóµÄËÑË÷Æ÷
ctx = new InitialContext(properties);
//ʹÓÃlookup·½·¨Ñ°ÕÒUserTableRemote¶ÔÏó
Object UserTableJNDI = ctx.lookup("Hello");
//È¡µÃEJBµÄHome½Ó¿Ú
HelloRemoteHome home = (HelloRemoteHome) PortableRemoteObject.narrow(
UserTableJNDI, HelloRemoteHome.class);
//ÉùÃ÷EJBµÄµÄRemote½Ó¿Ú
HelloRemote jackUser;
try {
//È¡µÃEJBµÄRemote½Ó¿Ú
jackUser = (HelloRemote) PortableRemoteObject.narrow(home.
findByPrimaryKey("wfz"),
HelloRemote.class);
System.out.println(jackUser.getName());
jackUser.addUser("hx", "san1");
}
catch (Exception ex) {
ex.printStackTrace();
}

}

}
×¢Ò⣺²»ÄÜÔÚÒ»¸ö·½·¨ÄÚÅ׳öÁ½¸öÒì³££¬½«»áÒýÆðnesting´íÎó.



¡ü·µ»ØĿ¼
ǰһƪ: Wrox - Expert One-on-One J2EE Design &
ºóһƪ: [·­Òë½Ì³Ì]ʹÓÃJBOSSºÍECLIPSE¹¹½¨J2EEÓ¦ÓóÌÐò½Ì³Ì--Ç°ÑÔ