JdonFrameworktest里的CMP问题请教?

dawei
05-09-16 2 93

请教 我发觉教程JdonFrameworktest里面,database的PK都是为 char
可是一般我自己在使用database时,
PK都是int 为主 让他自动递增(MSSQL),
依据JdonFrameworktest 里的程序,我把databse的id表格由char改为 int
可是发生了一些我不了解的问题.
在使用CMP,在EJBBean下面程序变成
public Integer ejbCreate(Integer id) throws CreateException {
setSeq(seq);
return null;
}
也就是宣告都变成 Integer,
可是一般不是都是宣告public int ejbCreate(int id ) CreateException吗?
宣告成Integer后,在JdbcDAO, public Usertest getField(Ingeter Id) throws Exception 和里面的
ps.setString(1,Id),ret.setUserId(rs.getString("userId"))
ps,rs 到底要宣告成什么型态?
我宣告成 Integer后 ps,ret,没有ps.setInteger(1,Id)这各型态和 rs.getInteger()这各型态…
假如宣告成int,那EJBBean 下面自动出来的程序 却都是宣告成Integer..
而且EJBBean 的程序,手动改成宣告int后.会变成找不到 PK…因为他要去找Integer型态的PK而不是int型态的PK

还有为什么版上所有的范例PK都是 char 而不使用int
有特别的原因吗?

dawei
2005-09-16 11:32

也就是说当我PK改为int时
在CMP 自动生成的程序代码 都是为Integer,所以导致 TestEJBBean里有关PK的宣告跟JdbcDao里的ps,取回值ret都会有问题,
能否跟我讲假如PK 为 int时,TestEJBBean 的id要如何宣告, JdbcDao的getField(xxx Id???) 和里面的ps(ps.setxxx???) 跟取回值ret(rs.setxxx??)要如何得到database里的值呢?

banq
2005-09-16 14:26

EJB中必须是对象,特别是实体Bean,一般是int的对象Integer

至于主键使用什么类型不重要,ID都是由一个叫Sequence.jar的序列号产生器产生的,我喜欢全部用字符串的,方便,因为Web网页缺省传过来的都是字符串,到后全部是,省心。