美丽涵涵童装店--说我博客名字,给你们打折!
随笔 - 82  文章 - 266  trackbacks - 0
<2015年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789


点击这里给杨爱友发消息
美丽涵涵童装店
说我博客名字,给你们打折!

常用链接

留言簿(6)

随笔分类

随笔档案

文章档案

好友的BLOG

搜索

  •  

最新评论

阅读排行榜

评论排行榜

来到互联网公司,需要开发EJB程序,用两天的时间先学习了EJB的开发流程,我用的开发环境是myeclipse、jboss4.2、ejb3.0、struts1.3.8、jkd6、oracle、JPA,页面展现用到velocity。其实这不是一个春对ejb的学习文章,因为里面涉及了跟ejb无关的struts、velocity,如果单纯学习写ejb的helloword,数据库都不用连接。下面我描述下helloword程序的实现过程。
1. 在myeclipse下创建工程
    右键myeclipse--创建工程,选择Enterprise java Project,输入工程名字,如"firstApp",勾选“new web module project”和"new ejb project“两项,eclipse会自动创建出相关联的三个工程:"firstApp"、"firstAppEJB"、"firstAppWeb";如下图所示:


2. 创建数据库表
   我用的是oracle数据库,创建了一个名为test_yay_user的数据库表,里面有三个字段id、username、password,都是varchar类型。
3. 在jboss里面配置数据源(略去)
4. 在ejb工程META-INF下创建数据连接配置文件persistence.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
 version="1.0">
    
    <persistence-unit name="OracleDS" transaction-type="JTA">
        <jta-data-source>java:OracleDS</jta-data-source>
        <properties>
           <property name="hibernate.show_sql" value="true"></property>
           <property name="hibernate.format_sql" value="true"></property>
           <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"></property>
        </properties>
    </persistence-unit>
</persistence>

   其中OracleDS是你在jboss里面配置的数据源,其他参数根据具体起进行修改;
5. 创建持久化类
  因为用到jpa,需要创建持久化类,因为用了注解的方式,没有对应的xml文件,文件如下:
package user;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "test_yay_user")
public class User implements java.io.Serializable{
    private static final long serialVersionUID = -8692000975878306489L;
    private String id;
    private String username;
    private String password;
    
    public User(){
    }
    public User(String id,String username,String password){
        this.id = id;
        this.username = username;
        this.password = password;
    }
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", nullable = false, length = 100)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    
    @Column(name = "username", nullable = false, length = 19)
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    @Column(name = "password", nullable = false, length = 19)
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}
  注意:好像必须要有那个全的构造函数,否则可能无法正确持久化;好像在我调试过程中,提示我必须要有个默认的构造函数;因为涉及到对象序列化,可能必须要有serialVersionUID ;
  GenerationType.AUTO是让数据库自己去决定主键的生产策略。
6. 在src根目录下创建
jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming\:org.jnp.interfaces
7. SessionBean的编写
   (1) 编写接口IUserService
           里面声明增删改查的方法,接口最上方