EJB3 програмчлал

JBoss Application Server дээр Enterprise java bean 3 - г хэрхэн тохируулах, програмчлах талаар бичье.
Орчин:
  • jdk 1.5 ба түүнээс хойших хувилбар
  • Eclipse
EJB3 прожектийн бүтэц:
  • - yourproject.jar
    • -META-INF
      • - ejb-jar.xml
      • - persistence.xml
      • - MANIFEST.MF
    • -Your classes
      • - ...

ejb-jar.xml - н бүтэц:

persistence.xml - н бүтэц:

fifaEJB: Прожектийн апликэшн серверт бүртгэгдэх нэр. Нэг серверийн хувьд давтагдахгүй байх шаардлагатай.
java:/fifаDS: - Data Source

Datasource үүсгэх:
MySQL server - н datasource үүсгэе. mysql-ds.xml file үүсгэж серверийнхээ 'deploy' directory-руу хуулна. mysql-ds.xml бүтэц:

jbossserverdocsexamplesjca хавтас дотор бүсад database хэв файлууд байгаа.

eclipse дээрээ прожектоо үүсгэ


Зураг дээр харагдаж байгаа бүх сангуудыг прожектдоо зааж өгөөрэй.

Entity bean :
User.java

package mn.dalais.example.entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name = "User")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = -978269922594938178L;
private Integer id;
private String username;
private String password;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

// ************ Xerev oracle server ashiglaj bgaa bol Auto increment filed-ee ingej zaaj ogno. *****
// @SequenceGenerator(name = "USER_SEQ", sequenceName = "USR_USER_SEQ",
// allocationSize = 50, initialValue = 10000)
// @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
// "USER_SEQ")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}

Энэ
session bean-г нь ямарч програмд хэрэглэж болхоор бичсэн тул зүгээр л copy&past хийгээд үүсэгчих. Чи програмынхээ Entity bean-үүдийг л үүсэгэхэд хангалттай. Програмын чинь middle tier бэлэн боллоо л гэсэн үг.

Session Bean:
SessionFacadeLocal.java

package mn.dalais.example.session;

import java.util.List;
import javax.ejb.Local;

@Local
public interface SessionFacadeLocal {
public Object update(Object object);
public void create(Object object);
public void refresh(Object object);
public void remove(Object object);
public List createQuery(String qry, Object[] params);
}

SessionFacadeRemote.java

package mn.dalais.example.session;

import javax.ejb.Remote;
@Remote
public interface SessionFacadeRemote {
}

SessionFacadeBean.java

package mn.dalais.example.session;

import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
*
* @author Delgerdalai /S.70ai/ 2006.07.26
*
*/

@Stateless
public class SessionFacedeBean implements SessionFacadeLocal,
SessionFacadeRemote {

@PersistenceContext
EntityManager em;
public static final String RemoteJNDIName = SessionFacedeBean.class
.getSimpleName()
+ "/remote";
public static final String LocalJNDIName = SessionFacedeBean.class
.getSimpleName()
+ "/local";
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public Object update(Object object) {
Object obj = em.merge(object);
em.flush();
return obj;
}

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void create(Object object) {
em.persist(object);
em.flush();
}

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void refresh(Object object) {
em.refresh(object);
em.flush();
}

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void remove(Object object) {
final EntityManager emanger = em;
emanger.remove(emanger.merge(object));
emanger.flush();

}
@SuppressWarnings("unchecked")
public List createQuery(String qry, Object[] params) {
try {
Query query = em.createQuery(qry);
if (params != null) {
if (params.length > 0) {
for (int i = 0; i < params.length; i++) {
query.setParameter(i + 1, params[i]);
}
}
}

return query.getResultList();

} catch (Exception e) {
// exception call admin :P
}return null;
}
}


Interface lookup хийх.

InitialContext defaultContext = new InitialContext();
SessionFacadeLocal local = (SessionFacadeLocal) defaultContext.lookup(SessionFacedeBean.LocalJNDIName);


user үүсгэх:
User user = new User();
user.setUsername("dalai");
user.setPassword("password");
local.create(user);


select :
List users = local.createQuery("from User u",null);
List start_a_users = local.createQuery("from User u where u.username like '?1%'", new Object[] {"a"});



Deploy хийх:
project - оо jar file болгож export хийгээд серверийнхээ deploy directory-руу хуулна.
ингээд л боллоо. Заавал ашиглаж үзээрэй.

С.Дэлгэрдалай

14 сэтгэгдэл:

null
SDK (зочин)

@Remote ashiglah shaardlagagui bol Entity bean - iig Serializable hiih zailshgui shaardlagagui baih. performance - d nuluulnu gej unshisan yum bn.

s.70ai (зочин)

Yer ni bol zov, Gexdee zarim tohioldoluud baidag, JSF framework ashiglaj baixad bean class-daa entityBean class-aa shuud ashiglaad yavah toxioldol zond ni gardag, yamar dahiad ijilxen class uusgeltei bish , ter tohioldold Serializable implement xiisen baix yostoi gej shaarddag shig sanagdaad bn,

SDK (зочин)

createQuery function ih zugeer sanaa baina shuu. Ene tohioldold CMP baih shig baina te. createQuery function ni Update Remove Insert teigee neg transaction d baih ni her zuv be. Bas createQuery function container deer ajillah uu.

S.Dalai (зочин)

Ene session bean -nii xuvid transaction ogt implement xiigdeegui, autocommit baigaa gesen ug, yamar vaa neg uildel xiigdeed shuud db server luu oorchilolt orj baigaa. @TransactionAttribute(TransactionAttributeType.REQUIRED) Ene-g bi oilgoxdoo autocommit l gej oilgoj baina , bur ix nariiniig ni sain medexgui yum :). Transaction orood irvel tusgai zoriulalttai session bean uusegsen ni deer baix, Ene bol eronxii l session bean bgaan :). Sanal bodloo xuvaaltsaj baigaad bayarllaa. Chi opennet -d author boloxgui yum uu. Byambaa ?

SDK (зочин)

Bi oiolgohdoo Transaction bol baigaa. Harin CM - eer udirdagdaj baina. Ene session bean iig ashiglaj baigaa buh instancuud neg transaction - d hariyalagdaad baina gej oilgood baina l daa. select, update, delete bugd. @PersistenceContext EntityManager em; ene bichigleliin orond @PersistenceUnit(unitName = "aiaxPU") private EntityManagerFactory emf; EntityManager em = this.emf.createEntityManager(); /* select */ em.close(); ashiglaval. Tegeed bas read only bolon writable methoduudiig salgaj 2 session bean bichih heregtei baih. Neg ni CMP nuguu ni BMP. Ene zugeer ni minii sanal bolgoj baigaa shiidel Gehdee end zuv buruu sain muu gej bicheegui shuu :).

SDK (зочин)

Bayarlalaa hugshuun. Tegvel hugshinduu neg erh neegeed uguurei.

SDK (зочин)

Minii GOGO ID "superuser" shuu.

S.Dalai (зочин)

Bi neg l sain oilgoxgui bain , Chi ooriin implementation xiisen session bean - ee uzuuleech xo. :), Iluu sain shiidel baix :)

S.Dalai (зочин)

Request yavuulcan accept xiigeerei :)

S.Dalai (зочин)

Udahgui SDK-n bichleg deer uulzaya

gno (зочин)

hey EJB3.0 deer BMP bhgvi bolood orond n JPA orj irsen geed bgaa ene talaar jahan yum heleech ho

Tegeed bas CMP bean yaj vvsgeed yaj ajilaad bgaag sain oilgodogvi ee tuslaach pls !!!!!!!!!!!

gno (зочин)

@EJB RemoteInterface int;
ene ajilahgvi bna yahuu

Зочин

pooh odoo dahiad xaigaad uzsen deer bxaa, buten 2 jil ongorson bn shuu dee, ene bichlegnees xoish.

gno (зочин)

Wow neree tiim bna shde
Manarch yum haij yawsaar bgaad t1 boltson bna gehde ern bol bolgochihson
gehde yag ene hesegiig yaj ajilj bgag n oilgohgvi bga
@EJB RemoteInterface int;

Сэтгэгдэл үлдээх



(нийтэд харагдахгүй)

(оруулах албагүй)
(HTML синтакс зөвшөөрөгдөөгүй)


(Зурган дээрх тоог оруулна уу)


 

Design in CSS by TemplateWorld and sponsored by SmashingMagazine
Blogger Template created by Deluxe Templates