日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Eclipse快速上手EJB -- 4. 多對(duì)多的單向關(guān)系的C

系統(tǒng) 1864 0

這個(gè)系列文章我是根據(jù) Rick Hightower 發(fā)表在 IBM 網(wǎng)站的文章 EJB - CMP/CMR 介紹》 改編而成的,這是一個(gè)系列,共有4篇文章。這篇文章綜合了那4篇文章,看這篇文章前一定要參考一下,這樣理解起來(lái)很方便,不過(guò)我做了部分修改,原理基本還是不變的。關(guān)于 CMP 方面的知識(shí)我不說(shuō)了,我這里只是介紹如何使用 Lomboz 和 JBoss-IDE 在Eclipse 中開(kāi)發(fā) CMP。
這篇文章主要講述如何開(kāi)發(fā)多對(duì)多的單向聯(lián)系,這里設(shè)計(jì)了一個(gè)RoleBean,和UserBean建立聯(lián)系,由UserBean控制RoleBean。重點(diǎn)放在如何使用XDoclet建立多對(duì)多的單向聯(lián)系,客戶端的調(diào)用比較簡(jiǎn)單。
這篇文章是由《 Eclipse快速上手EJB -- 2. 設(shè)計(jì)一個(gè)實(shí)體Bean 》、《 Eclipse快速上手EJB -- 3. 設(shè)計(jì)一對(duì)一的雙向關(guān)系的CMR(1) 》延伸而來(lái)。所以,必須要有這兩篇文章的基礎(chǔ)才行
關(guān)于環(huán)境配置、使用技巧還是要參考我以前的文章,這里盡量省略。
一、設(shè)計(jì)實(shí)體Bean :RoleBean
1. 建立主體部分:
在 CMP_Sample 項(xiàng)目中,右擊“src” ->新建 ->Lomboz EJB Creation Wizard :
· 包(K) :javamxj.ejb.cmp
· 名稱(M): Role
· EJB Type:選擇ContainerManaged EntityEJB
點(diǎn)擊下一步。
● Schema Name: RoleSchema
Table Name: RoleTable
增加一個(gè) name 欄:
· Field: name
· Field Type: java.lang.String
· Database Column: 權(quán)限名稱
· SQL Type: varchar
并且使它成為主鍵 。
同樣,再增加一個(gè) description 欄:
· Field: description
· Field Type: java.lang.String
· Database Column: 權(quán)限描述
· SQL Type: varchar
效果如下,最后點(diǎn)擊完成。
注意 :如上篇文章一樣,將生成代碼中的 sql-type="varchar" 改寫(xiě)成 sql-type="varchar(xy)" ,xy是一個(gè)合適的VARCHAR 的位數(shù)。
2. 完成 ejbCreate 和 ejbPostCreate 方法:
3. 在類(lèi)標(biāo)記中加入以下標(biāo)記:
下面給出了RoleBean.java的完整的源代碼:

RoleBean.java

                              
                                /*
                              
                              
                                 * 創(chuàng)建日期 2005-1-25
                              
                              
                                 *
                              
                              
                                 * 作者:javamxj(分享java快樂(lè))
                              
                              
                                 */
                              
                              
                                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>權(quán)限名稱<
                              
                              
                                /
                              
                              
                                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>權(quán)限描述<
                              
                              
                                /
                              
                              
                                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="權(quán)限名稱"
                              
                              
                              
                              
                                *
                              
                              
                                     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="權(quán)限描述"
                              
                              
                              
                              
                                *
                              
                              
                                     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);
}

                            
好了,保存,將 RoleBean 加入到 cmpEJB 模塊中,然后 lomboz -> Generate EJB Classes
4. 重點(diǎn):建立 UserBean對(duì) RoleBean 的多對(duì)多的單向聯(lián)系:
· 由于這次設(shè)計(jì)的是UserBean對(duì)RoleBean的單向聯(lián)系,所以只需要在UserBean中添加方法標(biāo)記即可。
切換到 UserBean.java ,右擊 UserBean ->J2EE ->Add CMR Relationship :
· 生成的標(biāo)記如下,還需要手工添加一些@JBoss標(biāo)記:
· 保存, Generate EJB Classes

Eclipse快速上手EJB -- 4. 多對(duì)多的單向關(guān)系的CMR(2)

接上篇: Eclipse快速上手EJB -- 4. 多對(duì)多的單向關(guān)系的CMR(1)

二、在UserManagementBean中添加業(yè)務(wù)方法
1. 增加一個(gè) UserInfoLocalHome 的變量 userHome,并將它放入 ejbCreate 和 ejbPassivate 方法中。
2. 依次增加以下幾個(gè)業(yè)務(wù)方法。

UserManagementBean中有關(guān) RoleBean 的部分(很簡(jiǎn)單)

                                        
                                          //**********************************************************************
                                        
                                        
                                          //                     多對(duì)多的單向關(guān)系
                                        
                                        
                                          //**********************************************************************
                                        
                                        
                                          /**
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                           創(chuàng)建權(quán)限
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                           Business method
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @throws
                                        
                                        
                                           CreateException
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @
                                        
                                        
                                          ejb
                                        
                                        
                                          .
                                        
                                        
                                          interface
                                        
                                        
                                          -
                                        
                                        
                                          method view
                                        
                                        
                                          -
                                        
                                        
                                          type = "remote"
                                        
                                        
                                            */
                                        
                                        
                                          public
                                        
                                        
                                          void
                                        
                                         createRole(
                                        
                                          String
                                        
                                         roleName, 
                                        
                                          String
                                        
                                         description)
  
                                        
                                          throws
                                        
                                         CreateException {
  roleHome.create(roleName, description);
 }
 
 
                                        
                                          /**
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                           顯示所有權(quán)限
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @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;
 }
 
                                        
                                          /**
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                           刪除權(quán)限
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @throws
                                        
                                        
                                           RemoveException
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @throws
                                        
                                        
                                           EJBException
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @
                                        
                                        
                                          ejb
                                        
                                        
                                          .
                                        
                                        
                                          interface
                                        
                                        
                                          -
                                        
                                        
                                          method view
                                        
                                        
                                          -
                                        
                                        
                                          type="remote"
                                        
                                        
                                            */
                                        
                                        
                                          public
                                        
                                        
                                          void
                                        
                                         removeRole(
                                        
                                          String
                                        
                                         name) 
                                        
                                          throws
                                        
                                         EJBException, RemoveException {
  roleHome.remove(name);
 }
 
                                        
                                          /**
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                           給用戶增加權(quán)限
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @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);
 }
 
 
                                        
                                          /**
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                           得到某個(gè)用戶擁有的權(quán)限
                                        
                                        
                                        
                                        
                                          *
                                        
                                        
                                        
                                        
                                          @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;
 }
   
                                      
3. 好了,保存, Generate EJB Classes, 啟動(dòng)MySql, 啟動(dòng)JBoss服務(wù)器, Deploy Module 。
如果一切正常,則會(huì)在 cmp_sample 庫(kù)中自動(dòng)建立兩個(gè)表:roletable 和 userrole 。
role_fk 和 email_fk 是在 UserBean 中的 getRoles 的方法標(biāo)記中定義的。
三、創(chuàng)建客戶端
1. 右擊 src文件夾 ->新建 ->Lomboz EJB Test Client Wizard:
創(chuàng)建一個(gè) CMPClient3.java 文件 (步驟同前兩篇文章一樣)。
2. 修改生成的 CMPClient3.java,調(diào)用UserManagementBean中的方法。
這里給出了完整的源代碼:

CMPClient3.java

                                    
                                      /*
                                    
                                    
                                       * 創(chuàng)建日期 2005-1-25
                                    
                                    
                                       *
                                    
                                    
                                       * 作者:javamxj(分享java快樂(lè))
                                    
                                    
                                       */
                                    
                                    
                                      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 要更改此生成的類(lèi)型注釋的模板,請(qǐng)轉(zhuǎn)至
                                    
                                    
                                    
                                    
                                      *
                                    
                                    
                                       窗口 - 首選項(xiàng) - 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(
                                    
                                      "顯示所有權(quán)限"
                                    
                                    );
   printList(userMgmt.getRoles());
   
   
                                    
                                      System
                                    
                                    .out.println(
                                    
                                      "給用戶wangyi@aaa.com增加權(quán)限 "
                                    
                                    );
   userMgmt.addRole(
                                    
                                      "wangyi@aaa.com"
                                    
                                    , 
                                    
                                      color:
  
                                    
                                  
分享到:
評(píng)論
happmaoo
  • 瀏覽: 1291458 次
  • 性別: Icon_minigender_1
  • 來(lái)自: 杭州
存檔分類(lèi)
最新評(píng)論

Eclipse快速上手EJB -- 4. 多對(duì)多的單向關(guān)系的CMR


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 南郑县| 田阳县| 且末县| 松滋市| 纳雍县| 建德市| 衡东县| 尉氏县| 育儿| 皮山县| 乌拉特中旗| 京山县| 东丰县| 滦平县| 沙洋县| 潞西市| 曲沃县| 大余县| 黎川县| 师宗县| 莱阳市| 虞城县| 孟州市| 安阳县| 梓潼县| 合江县| 大厂| 云林县| 保靖县| 大庆市| 临夏市| 灵山县| 灵丘县| 长沙县| 高青县| 昆山市| 麻江县| 惠安县| 瑞安市| 株洲县| 兴隆县|