EJB3.0 JPA 增删改查 模拟用户登录、注册用户、事物处理(详细)

本文详细介绍了如何利用EJB3.0结合Spring、Hibernate进行开发,包括会话bean、实体bean的概念,有状态bean与无状态bean的区别,以及在开发环境和工具的选择上,如JDK1.5、jboss-4.2.3.GA、MyEclipse5.5.1GA和mysql等。通过配置JNDI连接数据库,实现简单的项目构建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

貌似最近EJB3.0很流行\自己也开始学了下,其实如果对spring、hibernate比较熟悉的话ejb3.0其实很简单

ejb3.0也有依赖注入、AOP事务管理及hibernate的延迟加载这些东西和spring、hibernate大致做法是一致的!

 

学习ejb3.0之前必须先理解如下:

1、什么是会话bean、什么是实体bean(bean不知道中文对应的字,写成豆有点别扭 ,呵呵文盲sessionBean、entityBean)

//插一句什么是消息驱动bean 其实这个实例中没有介绍,所以我也不说明了~

2、有状态bean和无状态bean的区别

开发环境及工具:

 

1、jdk1.5

2、jboss-4.2.3.GA(必须4.2.xx版本才支持ejb3.0啊)

3、MyEclipse 5.5.1 GA

4、mysql

 

我使用MyEclipse 5.5.1 GA 主要是工作中习惯了它,其它高版本还不太适应,高版本建立ejb3.0应该一样89不离10哈

如果只有EclipseJ2EE 版本的话就需要将jboos中的D:\jboss-4.2.3.GA\server\default\lib的jar文件加入到根目录,这个不做介绍了哈,本机没有jee版本

 

EJB都是通过容器来连接数据库的,程序通过JNDI来调用

在建立项目之前先进入jboss 目录:D:\jboss-4.2.3.GA\docs\examples\jca 找到mysql-ds.xml ,因为我使用的是mysql所以就要它另存为其它地方,如果是oracle或db2找相对应的就OK

然后修改下数据库连接及其它设置修改如下

<?xml version="1.0" encoding="UTF-8"?>


<datasources>
  <local-tx-datasource>
    <jndi-name>demoDS</jndi-name>
    <connection-url>jdbc:mysql://127.0.0.1:3306/demo</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
    <min-pool-size>3</min-pool-size>
    <max-pool-size>10</max-pool-size>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>


以上数据库设置就好了,不需要写代码哦···简单的爽·················然后把修改后的配置文件复制到jboss目录:D:\jboss-4.2.3.GA\server\default\deploy下

启动jboss数据库连接就O了·

 

请记住<jndi-name>demoDS</jndi-name> 后面项目建立的时候需要用到

现在开始建立EJB3.0项目

 

 

内容如下:

<?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="demo" transaction-type="JTA">
  		<jta-data-source>java:demoDS</jta-data-source>
	</persistence-unit>
  
</persistence>

transaction-type="JTA" 一定要是JTA事物啊,这个可是支持分布式事物的啊!

项目各种包的一个展示,对应有过开发项目的人来说应该是明白的我还是具体说明下

org.demo.jpa.dao  dao层的接口

org.demo.jpa.dao.impl dao层的实现类

org.demo.model  这里指实体bean说简单点就是对应数据库的java bean对象(这样说有一点不对,它不是简单java bean,它属于ejb的bean)

org.demo.service 服务层的接口

org.demo.service.impl 服务层实现类

 

META-INF这个是JTA规范

 


首先数据库建立两张表,user表和book表,本打算介绍下懒加载的,但因为时间问题,这个以后在说了,暂时不介绍了,所以实际只用到了user表

我是反向工程,先建立表结构然后通过工具生成数据库javaBean模型

数据库代码:

 

-- Table "user" DDL

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `userName` varchar(10) NOT NULL,
  `passWord` varchar(10) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `userName` (`userName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Table "book" DDL

CREATE TABLE `book` (
  `id` int(11) NOT NULL auto_increment,
  `bookName` varchar(255) NOT NULL,
  `user` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `user` (`user`),
  CONSTRAINT `book_ibfk_1` FOREIGN KEY (`user`) R


数据库表建立好后,现在通过MyEclipse来自动生成代码

 

右上角--字打错了,改 :如果没有上面红线部分点击other可以找到

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值