越看越糊涂,恳请高手点拨 我来说几句吧,可能不一定对1.create()方法其实就是在数据库创建一条数据,所以需要的参数要符合数据库的要求,否则会报错。2.这个问题可以通过设置事务的隔离级别来解决。还有findByPrimaryKey()的代码,应该是写在容器帮你产生的entity bean object的实现类里面。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关于你说的第二点我想发表一下自己的愚见,J2EE的核心其实RMI,所有的RMI都是线程安全的,所以应该不存在你所说的问题 1>看数据库的主键约定,和NULL的控制了。如果都允许也可以。2>这就是事务要解决的问题。3》findByPrimaryKey不需要任何代码就是根据主见取出数据库中的数据,当然也就是一条记录。 看了你给我发的消息,我也来凑凑热闹,先声明我也不是高手,我还没毕业:(1.一个Entity Bean的实例对应的是数据库中的一条记录,这个没问题。如果你调用create()创建一个实例,就等于是在数据库中增加一条记录。但是数据库中增加记录是要有条件约束的,主键约束,非空约束等等,如果你的这条记录违背了约束,系统会抛异常出来的。2.这种情况是不应该出现的。虽然在外面看来用户A和B是一起在操作,但是在计算机内部这个操作是有先后顺序的。拿Weblogic来说,它有一个实例池,一般最大值是默认5个,有用户生成一个实例,实例池中就增加一个实例。在多用户的情况下,如果都是对实例进行查询的操作,没问题;如果有写操作,那就要加锁了。比如A先得到这个权力,它就要加一个独占锁,避免其他用户使用这个实例;只有当A对实例操作结束以后,解锁,然后B获得资源,B对其加锁,开始操作,……3.这个方法是一个默认的方法,作用和他的名字一样,依靠主键从数据库中取数,应该是不需要代码的。PS:再说两句,楼主可以自己试试,看书看不懂,自己试着做做看啊。比如像第一个问题,自己随便建一个表,再键一个entity bean,试一下,印象比看书深刻多了。 每调用一次 Create 方法就是创建记录, 如果你的这个函数一般是针对 数据库表中的字段的, 我还没见过使用 无参数的 Create 方法呢, 如果不能创建记录的话肯定是写错误.两个客户机调用了相同的xxx.narrow(xxx,xxx.class), 并不是对同一个 EJB 进行操作, 而是各自生成了 Home 接口(不是 EntityBean), 如果各自同时调用 findByPrimaryKey 方法(或其他 find, select方法)找到“同一个”(主键值相同) EJB 才会有事务的问题。另外 EntityBean 不是靠什么 get set 方法操作数据库的, 操作数据库的语句其实是Create, remove, findByPrimary, 其他find select 方法等 我来说说,交流并学习:1、大家讲的很清楚。2、《master ejb》第三章“资源和服务”第八章“事务”讲的再清楚不过了看这些肯定比我的转述更好。3、好象大家说的不清楚BMP 中 findByXxx 方法要在Bean类中用数据库操作具体实现。这就是说你自己的程序实现查询。CMP 中 在home 接口声明即可,然后要在ejb部署配置文件里配置,告诉应用服务器怎么完成你的这个查询。比如对于jboss,有jaws.xml部署文件,<finder> <name>findByCreIdAndFurId</name> <query>cre_id={0}and fur_id={1}</query> <order></order> <read-ahead>true</read-ahead></finder>这样是你告诉应用服务器让它帮你实现查询。我认为这和是否为主键无关更和你起什么名字无关。 另外:set方法改变bean类中一个属性时,如果这个属性是和数据库字段是匹配的(匹配方法也是分bmp和cmp两种),那set方法一样可以改变数据库中的值。 是的好像除了FINDBYPRIMARYKEY()不用写代码,其余在.JAVA文件中不用写,但是要在部署文件中说明.就像楼上的说的那样 很神奇的事情也。if和while有什么区别呢??? 急求解决:jsp中action转跳为何找不到目的地址?(404问题) 找一个用来做远程通讯的组件 2年J2SE经验,能找到J2EE的工作吗 求助!struts标签问题 关于跟踪的问题。高手请帮忙 dom4j对xml进行schema验证的问题. 请问domain object与pojo有什么区别吗? websphere 4.0下面有没有javax.sql的包呀 菜鸟问题:关于EJB 各位老兄:我在java中连接oracle数据库,出现了点问题,请问是什么原因,谢谢! 请看我的JavaMail为何不能发邮件?有代码。
2>这就是事务要解决的问题。
3》findByPrimaryKey不需要任何代码就是根据主见取出数据库中的数据,当然也就是一条记录。
1、大家讲的很清楚。
2、《master ejb》第三章“资源和服务”第八章“事务”讲的再清楚不过了看这些肯定比我的转述更好。
3、好象大家说的不清楚
BMP 中 findByXxx 方法要在Bean类中用数据库操作具体实现。这就是说你自己的程序实现查询。
CMP 中 在home 接口声明即可,然后要在ejb部署配置文件里配置,告诉应用服务器怎么完成你的这个查询。比如对于jboss,有jaws.xml部署文件,
<finder>
<name>findByCreIdAndFurId</name>
<query>cre_id={0}and fur_id={1}</query>
<order></order>
<read-ahead>true</read-ahead>
</finder>
这样是你告诉应用服务器让它帮你实现查询。
我认为这和是否为主键无关更和你起什么名字无关。 另外:set方法改变bean类中一个属性时,如果这个属性是和数据库字段是匹配的(匹配方法也是分bmp和cmp两种),那set方法一样可以改变数据库中的值。
好像除了FINDBYPRIMARYKEY()不用写代码,其余在.JAVA文件中不用写,但是要在部署文件中说明.就像楼上的说的那样