JBoss4.20下的第一个实体Bean(巨简单的)

第一步:建表,在Northwind下建立一个Users表:
create table Users(
id  int identity primary key,
name varchar(20) not null,
password varchar(20) not null
)


第二步:配置数据源

我用的数据库是SQL Server 2005,驱动是JTDS。

首先,将jtds-1.2.jar拷贝到JBOSS_HOME/server/all/lib下,然后在JBOSS_HOME/docs/examples/jca目录下找到mysql-ds.xml,这是JBoss用来配置SqlServer数据源的模板。编辑它:

<datasources>
  <local-tx-datasource>
    <!--数据源的JNDI名称-->
    <jndi-name>MSSQLDS</jndi-name>
    <!--JDBC连接URL-->
    <connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDatabase</connection-url>
    <!--驱动程序的完整类名-->
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
    <!--用户名-->
    <user-name>sa</user-name>
    <!--密码-->
    <password>abc</password>
        <!-- sql to call when connection is created
        <new-connection-sql>some arbitrary sql</new-connection-sql>
        -->

        <!-- sql to call on an existing pooled connection when it is obtained from pool
        <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
        -->

      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
      <metadata>
         <type-mapping>MS SQLSERVER2005</type-mapping>
      </metadata>
  </local-tx-datasource>
</datasources>

然后将编辑好的数据源配置文件拷贝到JBOSS_HOME/server/all/deploy部署。

现在可以开始编写实体Bean了
我用的是Eclipe,在项目下要建立一个META-INF目录,在里面创建一个persistence.xml。
编辑persistence.xml,放入如下内容:

<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">
    <!--持久化单元,我觉得这个好比Hibernate配置中的SessionFactory-->
    <persistence-unit name="User">
      <!--数据源,这里就用钢材配置的那个-->
     <jta-data-source>java:SS2005</jta-data-source>
     <!--其他属性,和Hibernate一样-->
     <properties>
      <property name="hibernate.show_sql" value="true"/>
   <property name="hibernate.format_sql" value="true"/>
     </properties>
    </persistence-unit>
</persistence>

然后创建一个实体Bean,注意一定要实现java.io.Serializable接口
package com.ejb3.simple.entry;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

//标识实体Bean
@Entity
//标识实体Bean对应的表名
@Table(name = "users")
//命名一个主键生成器。这里将identity生成策略命名为hibernate-identity。
@org.hibernate.annotations.GenericGenerator(
name = "hibernate-identity",
strategy = "identity"
)
public class Users implements Serializable{
 private Integer userId;
 private String name;
 private String password;
 
 //指定主键,以及生成策略
 @Id
 @GeneratedValue(generator = "hibernate-identity")//引用上边定义的生成器名称
 @Column(name="id")//指定列名
 public Integer getUserId() {
  return userId;
 }
 
 public void setUserId(Integer userId) {
  this.userId = userId;
 }
 
 //如果不显式定义@Column,默认对应同名列
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
}

接下来定义一个DAO借口并实现它
public interface UserDAO {
 public void addUser(Users user);
}

实现类:
import java.util.Date;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
@Remote ({UserDAO.class})
public class UserDAOImpl implements UserDAO{
 @PersistenceContext//注入EntityManager
 private EntityManager em;
 
 public void addUser(Users user) {
  em.persist(user);//持久化对象,呵呵巨简单
 }
}

接下来就可以打包了
用Eclipse的Export将类包和META-INF目录一起打入jar包,然后将这个jar包拷贝到
JBOSS_HOME/server/all/deploy

OK!
写程序测试一下:
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext ctx;
ctx = new InitialContext(props);
UserDAO userDAO=(UserDAO)ctx.lookup("UserDAOImpl/remote");
Users user=new Users();
user.setName("admin");
user.setPassword("123");
userDAO.addUser(user);

JBoss控制台输出:
16:03:39,171 INFO  [STDOUT] Hibernate:
    insert
    into
        users
        (name, password)
    values
        (?, ?)

到数据库里看看结果
select * from Users

id          name                 password
----------- -------------------- --------------------
1           admin                123

大功告成!这就是我的第一个EJB3.0 实体Bean。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值