ejbload一般是用来实现数据查询,ejbstore一般是用来实现数据修改,这些方法都是系统自动调用的,你只需要在它里面添加你需要实现的功能,楼主最好把你bean 的源代码发上来看看
解决方案 »
- JFreeChart问题求助(在线等指导)
- 今天看到一个创建线程池实例的代码,有个疑问?
- 在同一个web应用里,作为client访问两个不同的但都是基于HTTPS的webservices,可以反复设置System.setProperty么?
- 帮帮忙吧, SPRING与EHCACHE的错
- java 连接数据库有两个类来实现,实现方式都差不多,但是否调查用任意的类,是不是会产生两个连接池?
- 关于<html:frame>的属性问题~帮我看看~
- Dao层是否必要存在?
- hibernate配置错误
- 我在sun的网站上下载了j2ee的sdk但是怎么没有j2ee.exe可执行文件呢。
- 怎么用jQuery 点击保存 取到全选和单选checkbox的 编号和名称的值
- 在jbuilder9中老是提示这个错误,说是找不到路径,是怎么原因?
- 请教:关于Apache做weblogic代理时的EJB调用
* @author robby10
*
* Bean implementation class for Enterprise Bean: MaterialItem
*/
public class MaterialItemBean implements javax.ejb.EntityBean { public BigDecimal autoId;
public String materialCode;
public String materialName;
public String supplierCode;
public String supplierName;
public String groupCode;
public int rank;
private Connection conn;
private javax.ejb.EntityContext myEntityCtx; /**
* ejbActivate
*/
public void ejbActivate() {
autoId = (BigDecimal)myEntityCtx.getPrimaryKey();
} /**
* ejbLoad
*/
public void ejbLoad() { try{
loadItems();
}catch(Exception ex) {
throw new EJBException(
"ejbLoad exception:" + ex.getMessage() + ".....");
} } /**
* ejbPassivate
*/
public void ejbPassivate() {
autoId = null;
} /**
* ejbRemove
*/
public void ejbRemove() throws javax.ejb.RemoveException {
} /**
* ejbStore
*/
public void ejbStore() { try{
storeItems();
}catch(Exception ex) {
throw new EJBException(
"ejbStore exception:" + ex.getMessage() + ".....");
} } /**
* getEntityContext
*/
public javax.ejb.EntityContext getEntityContext() {
return myEntityCtx;
} /**
* setEntityContext
*/
public void setEntityContext(javax.ejb.EntityContext ctx) {
myEntityCtx = ctx;
try {
conn = ServerHelper.instance().getConnection();
} catch(Exception ex) {
throw new EJBException(
"Connect to DB failed:" + ex.getMessage());
}
} /**
* unsetEntityContext
*/
public void unsetEntityContext() {
myEntityCtx = null;
try {
conn.close();
} catch (SQLException ex) {
throw new EJBException (
"Close DB Connection failed:" + ex.getMessage());
}
} /**
* ejbFindByPrimaryKey
*/
public java.math.BigDecimal ejbFindByPrimaryKey(
java.math.BigDecimal primaryKey)
throws javax.ejb.FinderException {
boolean result;
try{
result = selectByPrimaryKey(primaryKey);
}catch (Exception ex) {
throw new EJBException(
"ejbFindByPrimaryKey exception:" + ex.getMessage());
}
if(result) {
return primaryKey;
}else{
throw new ObjectNotFoundException(primaryKey + " not found.");
} } public Collection ejbFindByGroup(String groupCode) throws FinderException {
try{
return selectByGroup(groupCode);
}catch(Exception ex) {
throw new EJBException(ex.getMessage());
} }
public Collection ejbFindAllFree() throws FinderException {
try{
return selectAllFree();
}catch(Exception ex) {
throw new EJBException(ex.getMessage());
} } public Collection ejbFindByMaterialCode(String materialCode) throws FinderException {
try{
return selectByMaterialCode(materialCode);
}catch(Exception ex) {
throw new EJBException(ex.getMessage());
} } private boolean selectByPrimaryKey(BigDecimal primaryKey) throws SQLException { String sql = "select ID from SUPPLIER_ITEM_MANAGE where ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
try{
ps.setBigDecimal(1, primaryKey);
ResultSet rs = ps.executeQuery();
return rs.next();
}finally{
ps.close();
}
}
private Collection selectByGroup(String groupCode) throws SQLException {
String sql = "select ID from SUPPLIER_ITEM_MANAGE where GROUP_CODE = ?";
PreparedStatement ps = conn.prepareStatement(sql);
try{
ps.setString(1, groupCode);
ResultSet rs = ps.executeQuery();
ArrayList al = new ArrayList();
while(rs.next()) {
BigDecimal id = rs.getBigDecimal(1);
al.add(id);
}
return al;
}finally{
ps.close();
}
} private Collection selectAllFree() throws SQLException {
String sql = "select ID from SUPPLIER_ITEM_MANAGE where GROUP_CODE is null";
Statement stmt = conn.createStatement();
try{
ResultSet rs = stmt.executeQuery(sql);
ArrayList al = new ArrayList();
while(rs.next()) {
BigDecimal id = rs.getBigDecimal(1);
al.add(id);
}
return al;
}finally{
stmt.close();
}
} private Collection selectByMaterialCode(String materialCode) throws SQLException {
String sql = "select ID from SUPPLIER_ITEM_MANAGE where ITEM_CODE like CONCAT(CONCAT('%',?),'%')";
PreparedStatement ps = conn.prepareStatement(sql);
try{
ps.setString(1, materialCode);
ResultSet rs = ps.executeQuery();
ArrayList al = new ArrayList();
while(rs.next()) {
BigDecimal id = rs.getBigDecimal(1);
al.add(id);
}
return al;
}finally{
ps.close();
}
} private void loadItems() throws SQLException {
String sql = "select ID,SUPPLIER_ITEM_MANAGE.ITEM_CODE,ITEM.DESCRIPTION,SUPPLIER_ITEM_MANAGE.SUPPLIER_CODE,SUPPLIER_NAME,GROUP_CODE,RANK " +
"from SUPPLIER_ITEM_MANAGE,ITEM,SUPPLIER where SUPPLIER_ITEM_MANAGE.ITEM_CODE = ITEM.ITEM_CODE " +
"and SUPPLIER_ITEM_MANAGE.SUPPLIER_CODE = SUPPLIER.SUPPLIER_CODE and ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
try{
ps.setBigDecimal(1, autoId);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
autoId = rs.getBigDecimal(1);
materialCode = rs.getString(2);
materialName = rs.getString(3);
supplierCode = rs.getString(4);
supplierName = rs.getString(5);
groupCode = rs.getString(6);
rank = rs.getInt(7);
}else {
throw new NoSuchEntityException(
autoId + " not found.");
}
}finally{
ps.close();
}
} private void storeItems() throws SQLException { String sql = "update SUPPLIER_ITEM_MANAGE set RANK = ? where ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
int rowCount;
try{
ps.setInt(1, rank);
ps.setBigDecimal(2, autoId);
rowCount = ps.executeUpdate();
}finally{
ps.close();
}
if(rowCount == 0) {
throw new EJBException(
"Storing " + autoId + " failed.");
}
} /**
* @return
*/
public BigDecimal getAutoId() {
return autoId;
} /**
* @return
*/
public String getGroupCode() {
return groupCode;
} /**
* @return
*/
public String getMaterialCode() {
return materialCode;
} /**
* @return
*/
public String getMaterialName() {
return materialName;
} /**
* @return
*/
public int getRank() {
return rank;
} /**
* @return
*/
public String getSupplierCode() {
return supplierCode;
} /**
* @return
*/
public String getSupplierName() {
return supplierName;
} /**
* @param string
*/
public void setGroupCode(String string) {
groupCode = string;
} /**
* @param i
*/
public void setRank(int i) {
rank = i;
}}
后来通过ejbFindByGroup(1)找对象,却发现被我set为null的那个对象还在结果集中
(你的程序我根本就没时间看,那么长的程序,一点注解都没有,谁也没有时间去读那么长的程序)
问题可能是在resault上,你在使用完一个resault后,没有将其close掉,所以造成结果集中有n个
结果。
如果你close掉后还不成的话可能是你的resault版本没有升级,到cn-java上去查查如何升级的
资料吧!!!!!