日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EJB3 学习笔记六

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EJB3 学习笔记六 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開發(fā)表音映射的實體

Java持久化規(guī)范(JPA),即是實體bean通遠元數(shù)據(jù)在javaBean和數(shù)據(jù)庫之間建立映射關系,常見的hibernate? toplink???openjpa

在src目錄下添加META-INF/persistence.xml文件,示例代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<persistencexmlns="http://java.sun.com/xml/ns/persistence"

?????? 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">

?

?????? <persistence-unitname="retacn"transaction-type="JTA">

????????????? <!-- 使用oracle數(shù)據(jù)庫 -->

????????????? <jta-data-source>java:/OracleDS</jta-data-source>

????????????? <properties>

???????????????????? <!-- 數(shù)據(jù)庫方言 -->

???????????????????? <propertyname="hibernate.hbm2ddl.auto"value="update"/>

???????????????????? <propertyname="hibernate.format_sql"value="true"/>

???????????????????? <propertyname="hibernate.show_sql"value="true"/>

?????? ?????? </properties>

?????? </persistence-unit>

?????? <persistence-unitname="local"transaction-type="JTA">

????????????? <!-- 使用mysql數(shù)據(jù)庫 -->

????????????? <jta-data-source>java:/MySqlDS</jta-data-source>

????????????? <properties>

???????????????????? <!-- 數(shù)據(jù)庫方言 -->

???????????????????? <propertyname="hibernate.hbm2ddl.auto"value="update"/>

????????????? ?????? <propertyname="hibernate.format_sql"value="true"/>

???????????????????? <propertyname="hibernate.show_sql"value="true"/>

????????????? </properties>

?????? </persistence-unit>

</persistence>

?

?

?

使用oracle數(shù)據(jù)庫

/**

?* Copyright (C) 2016

?*

?* FileName:User.java

?*

?* Author:<a href="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-22

?*/

// Package Information

?

package cn.yue.ejb.entity;

?

import java.io.Serializable;

import java.util.Date;

?

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

importjavax.persistence.GenerationType;

import javax.persistence.Id;

importjavax.persistence.SequenceGenerator;

import javax.persistence.Table;

import javax.persistence.Temporal;

import javax.persistence.TemporalType;

?

/**

?* 用戶 元數(shù)據(jù)的定義有兩種方式: 1 xml的方式 2 注解的方式

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-22

?*/

@Entity

@Table(name = "t_user")

public class User implementsSerializable {

?

?

???private static final long serialVersionUID = 1L;

???// @GeneratedValue表示主鍵的取值方式,這里采用序列的方式

???@Id

???@GeneratedValue(strategy = GenerationType.SEQUENCE, generator ="mseq")

???@SequenceGenerator(name = "mseq", sequenceName ="user_sequences", allocationSize = 1)

???private long id;

???@Column(length = 32)

???private String user_name;

???@Column(length = 32)

???private String real_name;

???@Column(length = 6)

???private String user_age;

???@Column(length = 16)

???private String password;

???@Column(length = 21)

???private String phone;

???@Column

???@Temporal(TemporalType.DATE)

???private Date regtime;

???@Column(length = 32)

???private String device_id;

???@Column(length = 10)

???private String visible;

???@Column(length = 60)

???private String email;

???@Column(length = 32)

???private String reserve1;

???@Column(length = 32)

???private String reserve2;

???@Column(length = 32)

???private String reserve3;

???@Column(length = 32)

???private String reserve4;

???@Column(length = 32)

???private String reserve5;

?

???/**

????* 構造器

????*/

???public User() {

???}

?

???public User(String user_name, String real_name, String password, Stringphone,

??????????? String device_id, String visible,

??????????? String email) {

???????this.user_name = user_name;

???????this.real_name = real_name;

???????this.password = password;

???????this.phone = phone;

???????this.device_id = device_id;

???????this.visible = visible;

???????this.email = email;

???????this.regtime = new Date();

?

???}

?

???public long getId() {

???????return id;

???}

?

???public void setId(long id) {

???????this.id = id;

???}

?

???public String getUser_name() {

???????return user_name;

???}

?

???public void setUser_name(String user_name) {

???????this.user_name = user_name;

???}

?

???public String getReal_name() {

???????return real_name;

???}

?

???public void setReal_name(String real_name) {

???????this.real_name = real_name;

???}

?

???public String getUser_age() {

???????return user_age;

???}

?

???public void setUser_age(String user_age) {

???????this.user_age = user_age;

???}

?

???public String getPassword() {

???????return password;

???}

?

???public void setPassword(String password) {

???????this.password = password;

???}

?

???public String getPhone() {

???????return phone;

???}

?

???public void setPhone(String phone) {

???????this.phone = phone;

???}

?

???public Date getRegtime() {

???????return regtime;

???}

?

???public void setRegtime(Date regtime) {

???????this.regtime = regtime;

???}

?

???public String getDevice_id() {

???????return device_id;

???}

?

???public void setDevice_id(String device_id) {

???????this.device_id = device_id;

???}

?

???public String getVisible() {

???????return visible;

???}

?

???public void setVisible(String visible) {

???????this.visible = visible;

???}

?

???public String getEmail() {

???????return email;

???}

?

???public void setEmail(String email) {

???????this.email = email;

???}

?

???public String getReserve1() {

???????return reserve1;

???}

?

???public void setReserve1(String reserve1) {

???????this.reserve1 = reserve1;

???}

?

???public String getReserve2() {

???????return reserve2;

???}

?

???public void setReserve2(String reserve2) {

???????this.reserve2 = reserve2;

???}

?

???public String getReserve3() {

???????return reserve3;

???}

?

???public void setReserve3(String reserve3) {

???????this.reserve3 = reserve3;

???}

?

???public String getReserve4() {

???????return reserve4;

???}

?

???public void setReserve4(String reserve4) {

???????this.reserve4 = reserve4;

???}

?

???public String getReserve5() {

???????return reserve5;

???}

?

???public void setReserve5(String reserve5) {

???????this.reserve5 = reserve5;

???}

?

???@Override

???public int hashCode() {

???????final int prime = 31;

???????int result = 1;

???????result = prime * result + ((device_id == null) ? 0 :device_id.hashCode());

???????result = prime * result + ((email == null) ? 0 : email.hashCode());

???????result = prime * result + (int) (id ^ (id >>> 32));

???????result = prime * result + ((password == null) ? 0 :password.hashCode());

???????result = prime * result + ((phone == null) ? 0 : phone.hashCode());

???????result = prime * result + ((real_name == null) ? 0 :real_name.hashCode());

???????result = prime * result + ((regtime == null) ? 0 : regtime.hashCode());

???????result = prime * result + ((reserve1 == null) ? 0 :reserve1.hashCode());

???????result = prime * result + ((reserve2 == null) ? 0 :reserve2.hashCode());

???????result = prime * result + ((reserve3 == null) ? 0 :reserve3.hashCode());

???????result = prime * result + ((reserve4 == null) ? 0 :reserve4.hashCode());

???????result = prime * result + ((reserve5 == null) ? 0 :reserve5.hashCode());

???????result = prime * result + ((user_age == null) ? 0 :user_age.hashCode());

???????result = prime * result + ((user_name == null) ? 0 :user_name.hashCode());

???????result = prime * result + ((visible == null) ? 0 : visible.hashCode());

???????return result;

???}

?

???@Override

???public boolean equals(Object obj) {

???????if (this == obj)

??????????? return true;

???????if (obj == null)

??????????? return false;

???????if (getClass() != obj.getClass())

??????????? return false;

???????User other = (User) obj;

???????if (device_id == null) {

??????????? if (other.device_id != null)

??????????????? return false;

???????} else if (!device_id.equals(other.device_id))

??????????? return false;

???????if (email == null) {

??????????? if (other.email != null)

??????????????? return false;

???????} else if (!email.equals(other.email))

??????????? return false;

???????if (id != other.id)

??????????? return false;

???????if (password == null) {

??????????? if (other.password != null)

??????????????? return false;

???????} else if (!password.equals(other.password))

??????????? return false;

???????if (phone == null) {

??????????? if (other.phone != null)

??????????????? return false;

???????} else if (!phone.equals(other.phone))

??????????? return false;

???????if (real_name == null) {

??????????? if (other.real_name != null)

???????????? ???return false;

???????} else if (!real_name.equals(other.real_name))

??????????? return false;

???????if (regtime == null) {

??????????? if (other.regtime != null)

??????????????? return false;

???????} else if (!regtime.equals(other.regtime))

???????????return false;

???????if (reserve1 == null) {

??????????? if (other.reserve1 != null)

??????????????? return false;

???????} else if (!reserve1.equals(other.reserve1))

??????????? return false;

???????if (reserve2 == null) {

??????????? if (other.reserve2 != null)

??????????????? return false;

???????} else if (!reserve2.equals(other.reserve2))

??????????? return false;

???????if (reserve3 == null) {

??????????? if (other.reserve3 != null)

??????????????? return false;

???????} else if (!reserve3.equals(other.reserve3))

??????????? return false;

???????if (reserve4 == null) {

??????????? if (other.reserve4 != null)

??????????????? return false;

???????} else if (!reserve4.equals(other.reserve4))

??????????? return false;

???????if (reserve5 == null) {

??????????? if (other.reserve5 != null)

??????????????? return false;

???????} else if (!reserve5.equals(other.reserve5))

??????????? return false;

???????if (user_age == null) {

??????????? if (other.user_age != null)

??????????????? return false;

???????} else if (!user_age.equals(other.user_age))

??????????? return false;

???????if (user_name == null) {

??????????? if (other.user_name != null)

??????????????? return false;

???????} else if (!user_name.equals(other.user_name))

??????????? return false;

???????if (visible == null) {

??????????? if (other.visible != null)

??????????????? return false;

???????} else if (!visible.equals(other.visible))

??????????? return false;

???????return true;

???}

?

???@Override

???public String toString() {

???????return "User [id=" + id + ", user_name=" + user_name+ ", real_name=" + real_name

??????????????? + ", user_age=" +user_age + ", password=" + password + ", phone=" + phone

??????????????? + ", regtime=" +regtime + ", device_id=" + device_id + ", visible=" +visible

??????????????? + ", email=" + email+ ", reserve1=" + reserve1 + ", reserve2=" + reserve2

??????????????? + ", reserve3=" +reserve3 + ", reserve4=" + reserve4 + ", reserve5=" +reserve5

???????????????+ "]";

???}

?

}

/**

?* Copyright (C) 2016

?*

?* FileName:UserService.java

?*

?* Author:<ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-22

?*/

// Package Information

?

package cn.yue.ejb.service;

?

import java.util.List;

?

import cn.yue.ejb.entity.User;

?

/**

?* 用戶操作實體

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-22

?*/

public interface UserService {

???public void save(User user);

?

???public void delete(long id);

?

???public void update(User user);

?

???public User getById(long id);

?

???public User getReferencesById(long id);

?

???public List<User> getAllUsers();

}

?

?

?

/**

?* Copyright (C) 2016

?*

?* FileName:UserServiceBean.java

?*

?* Author:<a href="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-22

?*/

// Package Information

?

package cn.yue.ejb.service.impl;

?

import java.util.List;

?

import javax.ejb.Remote;

import javax.ejb.Stateless;

importjavax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

?

import cn.yue.ejb.entity.User;

import cn.yue.ejb.service.UserService;

?

/**

?* 用戶操作 ,此服務為無狀態(tài)會話bean

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-22

?*/

@Stateless

@Remote(UserService.class)

public class UserServiceBeanimplements UserService {

?

???/**

????* 實體管理器unitName="" 指定持久化單元,使用oracle數(shù)據(jù)源, 如果只有一個持久化單元,該屬性可以省略

????**/

???@PersistenceContext(unitName = "retacn")

???EntityManager em;

?

???/**

????* 保存用戶

????*/

???@Override

???public void save(User user) {

???????// 新建狀態(tài)變?yōu)橥泄軤顟B(tài)

???????em.persist(user);

???}

?

???/**

????* 刪除用戶

????*/

???@Override

???public void delete(long id) {

???????// 由托管狀態(tài)變?yōu)殇N毀狀態(tài)

???????em.remove(getReferencesById(id));

???}

?

???/**

????* 更新用戶

????*/

???@Override

???public void update(User user) {

???????// 由游離狀態(tài)變?yōu)橥泄軤顟B(tài)

???????em.merge(user);

???}

?

???/**

????* 根據(jù)id查詢用戶

????*/

???@Override

???public User getById(long id) {

???????return em.find(User.class, id);

???}

?

???@Override

???public User getReferencesById(long id) {

???????// 懶加載返回代理對象,只有在使用get方法獲取數(shù)據(jù)時,對會加載對象

???????return em.getReference(User.class, id);

???}

?

???/**

????* 查詢所有用戶

????*/

???@SuppressWarnings("unchecked")

???@Override

???public List<User> getAllUsers() {

???????// 使用jpql查詢結果集

???????return (List<User>) em.createQuery("select u from Useru").getResultList();

???}

?

}

?

修改build.xml文件

<copytodir="${build.dir}">

???????????????????? <filesetdir="${src.dir}">

???????????????????? ?????? <includename="META-INF"/>

??????????????????????????? <includename="META-INF/"/>

??????????????????????????? <includename="META-INF/**"/>

??????????????????????????? <includename="META-INF/***"/>

???????????????????? </fileset>

????????????? </copy>

如果是編譯的是jar文件,可以直接使用<metainf></metainf>

?

?

客戶端測試代碼如下:

/**

?* Copyright (C) 2016

?*

?* FileName:UserServiceTest.java

?*

?* Author:<ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-22

?*/

// Package Information

?

packagecn.yue.ejb.test;

?

importcn.yue.ejb.entity.User;

importcn.yue.ejb.service.UserService;

?

import org.junit.BeforeClass;

import org.junit.Test;

?

importjava.util.Hashtable;

import java.util.List;

?

importjavax.naming.Context;

importjavax.naming.InitialContext;

?

/**

?* 測試用戶操作

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-22

?*/

public classUserServiceTest {

??? private static UserService userService;

?

??? @SuppressWarnings("unchecked")

??? @BeforeClass

??? public static void setUpBeforeClass()throws Exception {

??????? @SuppressWarnings("rawtypes")

??????? final Hashtable jndiProperties = newHashtable();

???????jndiProperties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");

??????? final Context context = newInitialContext(jndiProperties);

?

??????? // 如果服務器布署的是.ear,appname.ear之后的包名,如果的war或是jar,appName可以為空

??????? final String appName = "";

??????? final String moduleName ="HelloWorldEJB";

??????? final String distinctName ="";

??????? final String beanName ="UserServiceBean";

??????? final String viewClassName = UserService.class.getName();

?

??????? final String namespace ="ejb:" + appName + "/" + moduleName + "/" +distinctName + "/"

??????????????? + beanName + "!" +viewClassName;

???????System.out.println("namespace:" + namespace);

??????? userService = (UserService)context.lookup(namespace);

??????? System.out.println(userService);

??? }

?

??? @Test

??? public void testSave() {

??????? userService.save(newUser("retacn", "岳振華", "123456", "1234567","3333", "T",

"loveyou.for.ever@163.com"));

??? }

?

??? @Test

??? public void testDelete() {

??????? userService.delete(280);

??? }

?

??? @Test

??? public void testUpdate() {

??????? User user = userService.getById(305);

??????? user.setReal_name("岳老三");

??????? userService.update(user);

??? }

?

??? @Test

??? public void testGetById() {

??????? User user = userService.getById(305);

??????? System.out.println(user.toString());

??? }

?

??? @Test

??? public void testGetReferencesById() {

??? }

?

??? @Test

??? public void testGetAllUsers() {

??????? List<User> users =userService.getAllUsers();

??????? for (User user : users) {

???????????System.out.println(user.toString());

??????? }

??? }

?

}

?

?

?

使用mysql數(shù)據(jù)庫

?

/**

?* Copyright (C) 2016

?*

?* FileName:Buyer.java

?*

?* Author:<ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-23

?*/

// Package Information

?

package cn.yue.ejb.entity;

?

import java.io.Serializable;

import java.util.Date;

?

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

import javax.persistence.Temporal;

import javax.persistence.TemporalType;

?

/**

?* 購物者

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-23

?*/

@Entity

@Table(name = "buyer")

public class Buyer implementsSerializable {

???private static final long serialVersionUID = 1L;

?

???/** 用戶名 **/

???@Id

???@Column(name = "userName")

???private String userName;

???/** 郵箱 **/

???@Column(length = 30)

???private String email;

???/** 性別 **/

???@Column(length = 5)

???private String gender;

???/** 密碼 **/

???@Column(length = 32)

???private String password;

???/** 真實姓名 **/

???@Column(length = 30)

???private String realName;

???/** 注冊時間 **/

???@Column(length = 30)

???@Temporal(TemporalType.TIMESTAMP)

???private Date regTime = new Date();

???/** 是否可用 **/

???@Column(length = 1)

???private boolean visible = true;

???/** 暫不使用 **/

???@Column(length = 11)

???private String contact_id;

?

???/**

????* 構造器

????*/

???public Buyer() {

???}

?

???public Buyer(String userName,//

??????????? String email,//

??????????? String gender, //

??????????? String password,//

??????????? String realName) {

???????this.userName = userName;

???????this.email = email;

???????this.gender = gender;

???????this.password = password;

???????this.realName = realName;

???????this.regTime = new Date();

???}

?

???public String getUserName() {

???????return userName;

???}

?

???public void setUserName(String userName) {

???????this.userName = userName;

???}

?

???public String getEmail() {

???????return email;

???}

?

???public void setEmail(String email) {

???????this.email = email;

???}

?

???public String getGender() {

???????return gender;

???}

?

???public void setGender(String gender) {

???????this.gender = gender;

???}

?

???public String getPassword() {

???????return password;

???}

?

???public void setPassword(String password) {

???????this.password = password;

???}

?

???public String getRealName() {

???????return realName;

???}

?

???public void setRealName(String realName) {

???????this.realName = realName;

???}

?

???public Date getRegTime() {

???????return regTime;

???}

?

???public void setRegTime(Date regTime) {

???????this.regTime = regTime;

???}

?

???public boolean getVisible() {

???????return visible;

???}

?

???public void setVisible(boolean visible) {

???????this.visible = visible;

???}

?

???public String getContact_id() {

???????return contact_id;

???}

?

???public void setContact_id(String contact_id) {

???????this.contact_id = contact_id;

???}

?

???@Override

???public int hashCode() {

???????final int prime = 31;

???????int result = 1;

???????result = prime * result + ((contact_id == null) ? 0 : contact_id.hashCode());

???????result = prime * result + ((email == null) ? 0 : email.hashCode());

???????result = prime * result + ((gender == null) ? 0 : gender.hashCode());

???????result = prime * result + ((password == null) ? 0 : password.hashCode());

???????result = prime * result + ((realName == null) ? 0 :realName.hashCode());

???????result = prime * result + ((regTime == null) ? 0 : regTime.hashCode());

???????result = prime * result + ((userName == null) ? 0 :userName.hashCode());

???????result = prime * result + (visible ? 1231 : 1237);

???????return result;

???}

?

???@Override

???public boolean equals(Object obj) {

???????if (this == obj)

??????????? return true;

???????if (obj == null)

??????????? return false;

???????if (getClass() != obj.getClass())

??????????? return false;

???????Buyer other = (Buyer) obj;

???????if (contact_id == null) {

??????????? if (other.contact_id != null)

??????????????? return false;

???????} else if (!contact_id.equals(other.contact_id))

??????????? return false;

???????if (email == null) {

??????????? if (other.email != null)

??????????????? return false;

???????} else if (!email.equals(other.email))

??????????? return false;

???????if (gender == null) {

??????????? if (other.gender != null)

??????????????? return false;

???????} else if (!gender.equals(other.gender))

??????????? return false;

???????if (password == null) {

??????????? if (other.password != null)

?????????????? ?return false;

???????} else if (!password.equals(other.password))

??????????? return false;

???????if (realName == null) {

??????????? if (other.realName != null)

??????????????? return false;

???????} else if (!realName.equals(other.realName))

???????????return false;

???????if (regTime == null) {

??????????? if (other.regTime != null)

??????????????? return false;

???????} else if (!regTime.equals(other.regTime))

??????????? return false;

???????if (userName == null) {

??????????? if (other.userName != null)

??????????????? return false;

???????} else if (!userName.equals(other.userName))

??????????? return false;

???????if (visible != other.visible)

??????????? return false;

???????return true;

???}

?

???@Override

???public String toString() {

???????return "Buyer [userName=" + userName + ", email=" +email + ", gender=" + gender

??????????????? + ", password=" +password + ", realName=" + realName + ", regTime=" +regTime

??????????????? + ", visible=" +visible + ", contact_id=" + contact_id + "]";

???}

?

}

?

?

/**

?* Copyright (C) 2016

?*

?* FileName:BuyerService.java

?*

?* Author:<ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-23

?*/

// Package Information

?

package cn.yue.ejb.service;

?

import cn.yue.ejb.entity.Buyer;

?

import java.util.List;

?

/**

?* 購物者操作接口

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-23

?*/

public interface BuyerService {

???/**

????* 保存購物者

????*

????* @param buyer

????*/

???public void save(Buyer buyer);

?

???/**

????* 刪除購物者

????*

????* @param name

????*/

???public void delete(String name);

?

???/**

????* 更新購物者

????*

????* @param buyer

????*/

???public void update(Buyer buyer);

?

???/**

????* 根據(jù)用戶名查詢購物者

????*

????* @param name

????* @return

????*/

???public Buyer getById(String name);

?

???/**

????* 根據(jù)用戶名查詢購物者(懶加載)

????*

????* @param name

????* @return

????*/

???public Buyer getReferencesById(String name);

?

???/**

????* 查詢所有購物者

????*

????* @return

????*/

???public List<Buyer> getAllBuyers();

}

?

?

?

/**

?* Copyright (C) 2016

?*

?* FileName:BuyerServiceBean.java

?*

?* Author:<ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-23

?*/

// Package Information

?

package cn.yue.ejb.service.impl;

?

import java.util.List;

?

import javax.ejb.Remote;

import javax.ejb.Stateless;

importjavax.persistence.EntityManager;

importjavax.persistence.PersistenceContext;

?

import cn.yue.ejb.entity.Buyer;

import cn.yue.ejb.service.BuyerService;

?

/**

?* 購物者操作接口實現(xiàn)類(無狀態(tài)bean )

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-23

?*/

@Stateless

@Remote(BuyerService.class)

public class BuyerServiceBeanimplements BuyerService {

???/** 主入實體管理bean **/

???@PersistenceContext(unitName = "local")

???EntityManager em;

?

???@Override

???public void save(Buyer buyer) {

???????em.persist(buyer);

???}

?

???@Override

???public void delete(String name) {

???????em.remove(getReferencesById(name));

???}

?

???@Override

???public void update(Buyer buyer) {

???????em.merge(buyer);

???}

?

???@Override

???public Buyer getById(String name) {

???????return em.find(Buyer.class, name);

???}

?

???@Override

???public Buyer getReferencesById(String name) {

???????return em.getReference(Buyer.class, name);

???}

?

???@SuppressWarnings("unchecked")

???@Override

???public List<Buyer> getAllBuyers() {

???????return (List<Buyer>) em.createQuery("select b from Buyerb").getResultList();

???}

?

}

?

客戶端測試代碼如下:

/**

?* Copyright (C) 2016

?*

?* FileName:BuyerServiceTest.java

?*

?* Author:<ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?*

?* CreateTime: 2016-7-23

?*/

// Package Information

?

package cn.yue.ejb.test;

?

import cn.yue.ejb.entity.Buyer;

importcn.yue.ejb.service.BuyerService;

?

import org.junit.BeforeClass;

import org.junit.Test;

?

import java.util.Hashtable;

import java.util.List;

?

import javax.naming.Context;

import javax.naming.InitialContext;

?

/**

?* 購物者業(yè)務測試類

?*

?* @version

?* @Description:

?* @author <ahref="mailto:zhenhuayue@sina.com">Retacn</a>

?* @since 2016-7-23

?*/

public class BuyerServiceTest {

???private static BuyerService buyerService;

?

???@SuppressWarnings("unchecked")

???@BeforeClass

???public static void setUpBeforeClass() throws Exception {

???????@SuppressWarnings("rawtypes")

???????final Hashtable jndiProperties = new Hashtable();

???????jndiProperties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");

???????final Context context = new InitialContext(jndiProperties);

?

???????// 如果服務器布署的是.ear包,則appname為.ear之后的包名,如果的war或是jar包,appName可以為空

???????final String appName = "";

???????final String moduleName = "HelloWorldEJB";

???????final String distinctName = "";

???????final String beanName ="BuyerServiceBean";

???????final String viewClassName = BuyerService.class.getName();

?

???????final String namespace = "ejb:" + appName + "/" +moduleName + "/" + distinctName + "/"

??????????????? + beanName + "!" +viewClassName;

???????System.out.println("namespace:" + namespace);

???????buyerService = (BuyerService) context.lookup(namespace);

???????System.out.println(buyerService);

???}

?

???@Test

???public void testSave() {

???????buyerService.save(new Buyer("retacn1","loveyou.for.ever@163.com", "MAN", "123456","岳振華"));

???}

?

???@Test

???public void testDelete() {

???????buyerService.delete("retacn1");

???}

?

???@Test

???public void testUpdate() {

???????Buyer buyer = buyerService.getById("retacn1");

???????buyer.setRealName("岳老三");

???????buyerService.update(buyer);

???}

?

???@Test

???public void testGetById() {

???????Buyer buyer = buyerService.getById("retacn1");

???????System.out.println(buyer.toString());

???}

?

???@Test

???public void testGetReferencesById() {

?

???}

?

???@Test

???public void testGetAllBuyers() {

???????List<Buyer> buyers = buyerService.getAllBuyers();

???????for (Buyer buyer : buyers) {

???????????System.out.println(buyer.toString());

???????}

???}

?

}

轉(zhuǎn)載于:https://www.cnblogs.com/retacn-yue/p/6194212.html

總結

以上是生活随笔為你收集整理的EJB3 学习笔记六的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。