RoleBean.java
/*
* 創建日期 2005-1-25
*
* 作者:javamxj(分享java快樂)
*/
package
javamxj
.
ejb
.
cmp
;
/**
*
*
<!
-
-
begin
-
user
-
doc
-
-
> You can insert your documentation for '
<em>
<b>
RoleBean
</b>
</em>
'. <!
-
-
end
-
user
-
doc
-
-
>
*
<!
-
-
begin
-
lomboz
-
definition
-
-
>
<?xml version="
1.0
" encoding="UTF
-
8
"?>
<lomboz
:
EJB xmlns
:
j2ee="
http://java.sun.com/xml/ns/j2ee
" xmlns
:
lomboz="
http://lomboz.objectlearn.com/xml/lomboz
">
<lomboz
:
entity>
<lomboz
:
entityEjb>
<j2ee
:
display
-
name>Role<
/
j2ee
:
display
-
name>
<j2ee
:
ejb
-
name>Role<
/
j2ee
:
ejb
-
name>
<j2ee
:
ejb
-
class>javamxj
.
ejb
.
cmp
.
RoleBean<
/
j2ee
:
ejb
-
class>
<j2ee
:
persistence
-
type>Container<
/
j2ee
:
persistence
-
type>
<j2ee
:
prim
-
key
-
class>java
.
lang
.
String<
/
j2ee
:
prim
-
key
-
class>
<j2ee
:
cmp
-
version>
2.
x<
/
j2ee
:
cmp
-
version>
<j2ee
:
abstract
-
schema
-
name>RoleSchema<
/
j2ee
:
abstract
-
schema
-
name>
<j2ee
:
primkey
-
field>name<
/
j2ee
:
primkey
-
field>
<
/
lomboz
:
entityEjb>
<lomboz
:
fieldMappings>
<lomboz
:
fieldName>name<
/
lomboz
:
fieldName>
<lomboz
:
fieldType>java
.
lang
.
String<
/
lomboz
:
fieldType>
<lomboz
:
columnName>權限名稱<
/
lomboz
:
columnName>
<lomboz
:
jdbcType>VARCHAR<
/
lomboz
:
jdbcType>
<lomboz
:
sqlType>varchar<
/
lomboz
:
sqlType>
<lomboz
:
readOnly>false<
/
lomboz
:
readOnly>
<lomboz
:
primaryKey>true<
/
lomboz
:
primaryKey>
<
/
lomboz
:
fieldMappings>
<lomboz
:
fieldMappings>
<lomboz
:
fieldName>description<
/
lomboz
:
fieldName>
<lomboz
:
fieldType>java
.
lang
.
String<
/
lomboz
:
fieldType>
<lomboz
:
columnName>權限描述<
/
lomboz
:
columnName>
<lomboz
:
jdbcType>VARCHAR<
/
lomboz
:
jdbcType>
<lomboz
:
sqlType>varchar<
/
lomboz
:
sqlType>
<lomboz
:
readOnly>false<
/
lomboz
:
readOnly>
<lomboz
:
primaryKey>false<
/
lomboz
:
primaryKey>
<
/
lomboz
:
fieldMappings>
<lomboz
:
tableName>RoleTable<
/
lomboz
:
tableName>
<lomboz
:
dataSourceName><
/
lomboz
:
dataSourceName>
<
/
lomboz
:
entity>
<
/
lomboz
:
EJB>
<!
-
-
end
-
lomboz
-
definition
-
-
>
*
*
<!
-
-
begin
-
xdoclet
-
definition
-
-
>
*
@
ejb
.
bean name="Role"
*
jndi
-
name="Role"
*
type="CMP"
*
primkey
-
field="name"
*
schema="RoleSchema"
*
cmp
-
version="
2.
x"
*
view
-
type = "local"
*
data
-
source=""
*
*
@
ejb
.
persistence
*
table
-
name="RoleTable"
*
*
@
jboss
.
persistence
*
create
-
table = "true"
*
remove
-
table = "false"
*
*
@
ejb
.
finder
*
query="SELECT OBJECT(a) FROM RoleSchema as a"
*
signature="java
.
util
.
Collection findAll()"
*
*
@
ejb
.
pk class="java
.
lang
.
String"
*
<!
-
-
end
-
xdoclet
-
definition
-
-
>
*
@
generated
*
*/
public
abstract
class
RoleBean
implements
javax.ejb.EntityBean {
/**
*
@
ejb
.
create
-
method
*/
public
java.lang.
String
ejbCreate(
String
name,
String
description)
throws
javax.ejb.CreateException {
// EJB 2.0 spec says return null for CMP ejbCreate methods.
setName(name);
setDescription(description);
return
null
;
}
/**
*
The container invokes this method immediately after it calls ejbCreate.
*/
public
void
ejbPostCreate(
String
name,
String
description)
throws
javax.ejb.CreateException {
}
/**
*
CMP Field name
*
@return
the name
*
@
ejb
.
persistent
-
field
*
@
ejb
.
persistence
*
column
-
name="權限名稱"
*
jdbc
-
type="VARCHAR"
*
sql
-
type="varchar(
12
)"
*
read
-
only="false"
*
@
ejb
.
pk
-
field
*
*
@
ejb
.
interface
-
method
*/
public
abstract
java.lang.
String
getName();
/**
*
@param
java
.
lang
.
String the new name value
*
@
ejb
.
interface
-
method
*/
public
abstract
void
setName(java.lang.
String
name);
/**
*
CMP Field description
*
@return
the description
*
@
ejb
.
persistent
-
field
*
@
ejb
.
persistence
*
column
-
name="權限描述"
*
jdbc
-
type="VARCHAR"
*
sql
-
type="varchar(
30
)"
*
read
-
only="false"
*
*
*
@
ejb
.
interface
-
method
*/
public
abstract
java.lang.
String
getDescription();
/**
*
@param
java
.
lang
.
String the new description value
*
@
ejb
.
interface
-
method
*/
public
abstract
void
setDescription(java.lang.
String
description);
}
Eclipse快速上手EJB -- 4. 多對多的單向關系的CMR(2)
接上篇: Eclipse快速上手EJB -- 4. 多對多的單向關系的CMR(1)|
UserManagementBean中有關 RoleBean 的部分(很簡單) |
//**********************************************************************
// 多對多的單向關系
//**********************************************************************
/**
*
創建權限
*
Business method
*
@throws
CreateException
*
@
ejb
.
interface
-
method view
-
type = "remote"
*/
public
void
createRole(
String
roleName,
String
description)
throws
CreateException {
roleHome.create(roleName, description);
}
/**
*
顯示所有權限
*
@throws
FinderException
*
@
ejb
.
interface
-
method view
-
type="remote"
*/
public
ArrayList getRoles()
throws
FinderException {
ArrayList roleList =
new
ArrayList(30);
Iterator iter = roleHome.findAll().iterator();
while
(iter.hasNext()) {
RoleLocal role = (RoleLocal) iter.next();
roleList.add(role.getName());
}
return
roleList;
}
/**
*
刪除權限
*
@throws
RemoveException
*
@throws
EJBException
*
@
ejb
.
interface
-
method view
-
type="remote"
*/
public
void
removeRole(
String
name)
throws
EJBException, RemoveException {
roleHome.remove(name);
}
/**
*
給用戶增加權限
*
@throws
FinderException
*
@
ejb
.
interface
-
method view
-
type="remote"
*/
public
void
addRole(
String
email,
String
roleName)
throws
FinderException {
UserLocal user = userHome.findByPrimaryKey(email);
Collection
roles = user.getRoles();
RoleLocal role = roleHome.findByPrimaryKey(roleName);
roles.add(role);
}
/**
*
得到某個用戶擁有的權限
*
@throws
FinderException
*
@
ejb
.
interface
-
method view
-
type="remote"
*/
public
ArrayList getUserRole(
String
email)
throws
FinderException{
ArrayList roleList =
new
ArrayList(30);
UserLocal user = userHome.findByPrimaryKey(email);
Iterator iter = user.getRoles().iterator();
while
(iter.hasNext()) {
RoleLocal role = (RoleLocal) iter.next();
roleList.add(role.getName());
}
return
roleList;
}
|
CMPClient3.java
/*
* 創建日期 2005-1-25
*
* 作者:javamxj(分享java快樂)
*/
package
javamxj
.
ejb
.
client
;
import
java
.
rmi
.
RemoteException
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Hashtable
;
import
java
.
util
.
Iterator
;
import
javamxj
.
ejb
.
cmp
.
UserManagement
;
import
javax
.
ejb
.
CreateException
;
import
javax
.
ejb
.
FinderException
;
import
javax
.
naming
.
InitialContext
;
import
javax
.
naming
.
NamingException
;
/**
*
@author
pc
*
*
TODO 要更改此生成的類型注釋的模板,請轉至
*
窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
*/
public
class
CMPClient3 {
private
javamxj.ejb.cmp.UserManagementHome getHome()
throws
NamingException {
return
(javamxj.ejb.cmp.UserManagementHome) getContext().lookup(
javamxj.ejb.cmp.UserManagementHome.JNDI_NAME);
}
private
InitialContext getContext()
throws
NamingException {
Hashtable
props =
new
Hashtable
();
props.put(InitialContext.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory"
);
props.put(InitialContext.PROVIDER_URL,
"jnp://127.0.0.1:1099"
);
// This establishes the security for authorization/authentication
// props.put(InitialContext.SECURITY_PRINCIPAL,"username");
// props.put(InitialContext.SECURITY_CREDENTIALS,"password");
InitialContext initialContext =
new
InitialContext(props);
return
initialContext;
}
public
void
testBean() {
try
{
javamxj.ejb.cmp.UserManagement userMgmt = getHome().create();
createUsers(userMgmt);
System
.out.println(
"顯示所有權限"
);
printList(userMgmt.getRoles());
System
.out.println(
"給用戶wangyi@aaa.com增加權限 "
);
userMgmt.addRole(
"wangyi@aaa.com"
,
color:
發表評論
- 瀏覽: 1291458 次
-
性別:
- 來自: 杭州
-
最新評論
-
netkongjian
: 不錯的軟件知識,感謝分享!
軟件加密方式 -
norce
: 效果不錯~
JS實現圖片幻燈片效果 -
zxbear
: 鏈接已失效
《jQuery基礎教程:第2版》PDF -
架構師
: 在技術領域方面Java還是世界上最好的,而且有很多第三方控件的 ...
專訪:Ruby能否成為第二個Java -
freddie
: 如何拖動表格邊框調整行高和列寬?
可編輯的表格(JavaScript)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元


評論