I have ejbCreate method in my bean

==============

package com.beans.ejb;

import java.sql.*; 
import java.util.Enumeration; 
import java.util.Vector; 
import java.rmi.RemoteException; 
import javax.ejb.EntityBean; 
import javax.ejb.EntityContext; 
import javax.ejb.CreateException; 
import javax.ejb.FinderException; 
import javax.ejb.ObjectNotFoundException; 
import javax.ejb.*;
import com.beans.interfaces.ProductPK;
import javax.naming.InitialContext; 
import javax.naming.Context; 
import javax.naming.NamingException; 
import javax.sql.DataSource;

/**
 * XDoclet-based BMP entity bean.
 * 
 * To generate EJB related classes using XDoclet:
 *
 *              - Add Standard EJB module to XDoclet project properties
 *              - Customize XDoclet configuration
 *              - Run XDoclet
 * 
 * Below are the xdoclet-related tags needed for this EJB.
 *
 * @ejb.bean name="Product"
 *           display-name="Name for Product"
 *           description="Description for Product"
 *           jndi-name="ejb/Product"
 *           type="BMP"
 *           view-type="both"
 */
public class ProductBean implements EntityBean {

        /** The entity context */
        private EntityContext context;

        int UID; 
        String pName; 
        int pQuantity ; 
        String pPrice; 
        
        public int getUID() {
                System.out.println("getUID"); 
                return UID; 
        } 
        
        public String getpName() {
                System.out.println("getpName"); 
                return pName; 
        } 

        public int getpQuantity() {
                System.out.println("getpQuantity"); 
                return pQuantity; 
        }   
        
        public String getpPrice() {
            System.out.println("getpPrice"); 
            return pPrice; 
        } 

        public ProductBean() {
                super();
                // TODO Auto-generated constructor stub
        }

        /**
         * There are zero or more ejbCreate(...) methods, whose signatures match
         * the signatures of the create(...) methods of the entity bean?s home 
interface.
         * The container invokes an ejbCreate(...) method on an entity bean 
instance
         * when a client invokes a matching create(...) method on the entity 
bean?s
         * home interface.
         * 
         * The entity bean provider?s responsibility is to initialize the 
instance in the ejbCreate<
         * METHOD>(...) methods from the input arguments, using the get and set 
accessor
         * methods, such that when the ejbCreate(...) method returns, the 
persistent
         * representation of the instance can be created. 
         * 
         * The entity bean provider must not attempt to modify the values of 
cmr-fields in an ejbCreate<
         * METHOD(...) method; this should be done in the 
ejbPostCreate<METHOD(...) method instead.
         * 
         * The entity object created by the ejbCreate method must have a unique 
primary
         * key. This means that the primary key must be different from the 
primary keys of all the existing
         * entity objects within the same home. However, it is legal to reuse 
the primary key of a previously
         * removed entity object. The implementation of the bean provider?s 
ejbCreate<
         * METHOD>(...) methods should be coded to return a null.
         * 
         * An ejbCreate(...) method executes in the transaction context 
determined by
         * the transaction attribute of the matching create(...) method. 
         * The database insert operations are performed by the container within 
the same
         * transaction context after the Bean Provider?s ejbCreate(...) method 
completes.
         *
         * @throws CreateException Thrown if method fails due to system-level 
error.
         * 
         * @throws CreateException
         *
         * @ejb.create-method
         */
        public ProductPK ejbCreate( int UID, String pName, int pQuantity, 
                        String pPrice)  throws CreateException {
                System.out.println("ejbCreate"); 
            this.UID = UID; 
            this.pName = pName; 
            this.pQuantity = pQuantity; 
            this.pPrice = pPrice; 
            Connection connect = null; 
            PreparedStatement ps = null; 
            try {
              String sql = "INSERT INTO ProductInfo" + 
                " (UID, pName, pQuantity, pPrice)" + 
                " VALUES" + 
                " (?, ?, ?, ?)"; 
              connect = getConnection(); 
              ps = connect.prepareStatement(sql); 
              ps.setInt(1, UID); 
              ps.setString(2, pName); 
              ps.setInt(3, pQuantity); 
              ps.setString(4, pPrice); 
              ps.executeUpdate(); 
            } 
            catch (SQLException e) {
              System.out.println(e.toString()); 
            } 
            finally {
              try {
                if (ps!=null) 
                  ps.close(); 
                if (connect!=null) 
                  connect.close(); 
              } 
              catch (SQLException e) {
              } 
            } 
            return new ProductPK(UID); 
                
        }

        /**
         * For each ejbCreate(...) method, there is a matching ejbPostCreate<
         * METHOD>(...) method that has the same input parameters but whose 
return type is
         * void. The container invokes the matching ejbPostCreate(...) method on
         * an instance after it invokes the ejbCreate(...) method with the same 
arguments.
         * The instance can discover the primary key by calling getPrimaryKey() 
on its
         * entity context object. 
         * 
         * The entity object identity is available during the ejbPostCreate(...)
         * method. The instance may, for example, obtain the component 
interface of the associated entity
         * object and pass it to another enterprise bean as a method argument.
         * 
         * The entity Bean Provider may use the ejbPostCreate(...) to set the 
values
         * of cmr-fields to complete the initialization of the entity bean 
instance.
         * An ejbPostCreate(...) method executes in the same transaction 
context as
         * the previous ejbCreate(...) method.
         * 
         * @throws CreateException Thrown if method fails due to system-level 
error.
         */
        public void ejbPostCreate(int UID, String pName, int pQuantity
                        , String pPrice) 
        throws CreateException {
                System.out.println("ejbPostCreate");
        }

         public ProductPK ejbFindByPrimaryKey(ProductPK primaryKey) 
            throws RemoteException, FinderException {
            System.out.println("ejbFindByPrimaryKey"); 
            Connection connect = null; 
            PreparedStatement ps = null; 
            ResultSet rs = null; 
            try {
              String sql = "SELECT pName" + 
                " FROM ProductInfo" + 
                " WHERE UID=?"; 
              int UID = primaryKey.UID; 
              connect = getConnection(); 
              ps = connect.prepareStatement(sql); 
              ps.setInt(1, UID); 
              rs = ps.executeQuery(); 
              if (rs.next()) {
                rs.close(); 
                ps.close(); 
                connect.close(); 
                return primaryKey; 
              } 
            } 
            catch (SQLException e) {
              System.out.println(e.toString()); 
            } 
            finally {
              try {
                if (rs!=null) 
                  rs.close(); 
                if (ps!=null) 
                  ps.close(); 
                if (connect!=null) 
                  connect.close(); 
              } 
              catch (SQLException e) {
              } 
            } 
            throw new ObjectNotFoundException(); 

          } 

         public Enumeration ejbFindBypName(String pName) 
            throws RemoteException, FinderException {
            System.out.println("ejbFindBypName"); 
            Vector products = new Vector(); 
            Connection connect = null; 
            PreparedStatement ps = null; 
            ResultSet rs = null;   
            try {
              String sql = "SELECT UID " + 
                " FROM ProductInfo" + 
                " WHERE pName=?"; 
              connect = getConnection(); 
              ps = connect.prepareStatement(sql); 
              ps.setString(1, pName); 
              rs = ps.executeQuery(); 
              while (rs.next()) {
                int UID = rs.getInt(1); 
                products.addElement(new ProductPK(UID)); 
              } 
            } 
            catch (SQLException e) {
              System.out.println(e.toString()); 
            } 
            finally {
              try {
                if (rs!=null) 
                  rs.close(); 
                if (ps!=null) 
                  ps.close(); 
                if (connect!=null) 
                  connect.close(); 
              } 
              catch (SQLException e) {
              } 
            } 
            return products.elements(); 
          } 
 
        public void ejbActivate() throws EJBException, RemoteException {
                // TODO Auto-generated method stub
                System.out.println("ejbActivate");
        }

        public void ejbLoad() throws EJBException, RemoteException {
                // TODO Auto-generated method stub
                System.out.println("ejbLoad"); 
            Connection con = null; 
            PreparedStatement ps = null; 
            ResultSet rs = null; 
            try {
              String sql = "SELECT pName, pPrice" + 
                " FROM ProductInfo" + 
                " WHERE UID=?"; 
              con = getConnection(); 
              ps = con.prepareStatement(sql); 
              ps.setInt(1, this.UID); 
              rs = ps.executeQuery(); 
              if (rs.next()) {
                this.pName = rs.getString(1); 
                this.pQuantity = rs.getInt(2); 
                this.pPrice = rs.getString(3); 
              } 
            } 
            catch (SQLException e) {
              System.out.println(e.toString()); 
            } 
            finally {
              try {
                if (rs!=null) 
                  rs.close(); 
                if (ps!=null) 
                  ps.close(); 
                if (con!=null) 
                con.close(); 
              } 
              catch (SQLException e) {  
              } 
            } 
          
        }

        public void ejbPassivate() throws EJBException, RemoteException {
                // TODO Auto-generated method stub
                System.out.println("ejbPassivate");
        }

        public void ejbRemove() throws RemoveException,
                EJBException, RemoteException {
                // TODO Auto-generated method stub
                System.out.println("ejbRemove"); 
            Connection connect = null; 
            PreparedStatement ps = null; 
            try {
              String sql = "DELETE FROM ProductInfo" + 
                " WHERE UID=?"; 
              ProductPK key = (ProductPK) context.getPrimaryKey(); 
              int UID = key.UID; 
              connect = getConnection(); 
              ps = connect.prepareStatement(sql); 
              ps.setInt(1, UID); 
              ps.executeUpdate(); 
            } 
            catch (SQLException e) {
              System.out.println(e.toString()); 
            } 
            finally {
              try {
                if (ps!=null) 
                  ps.close(); 
                if (connect!=null) 
                  connect.close(); 
              } 
              catch (SQLException e) {
              } 
            } 

        }

        public void ejbStore() throws EJBException, RemoteException {
                // TODO Auto-generated method stub
                System.out.println("ejbStore"); 
            Connection connect = null; 
            PreparedStatement ps = null; 
            try {
              String sql = "UPDATE ProductInfo" + 
                " SET pName=?, pQuantity=?, pPrice=?" + 
                " WHERE UID=?"; 
              ProductPK key = (ProductPK) context.getPrimaryKey(); 
              int UID = key.UID; 
              connect = getConnection(); 
              ps = connect.prepareStatement(sql); 
              ps.setString(1, this.pName); 
              ps.setInt(2, this.pQuantity); 
              ps.setString(3, this.pPrice); 
              ps.setInt(4, UID); 
              ps.executeUpdate(); 
            } 
            catch (SQLException e) {
              System.out.println(e.toString()); 
            } 
            finally {
              try {
                if (ps!=null) 
                  ps.close(); 
                if (connect!=null) 
                  connect.close(); 
              } 
              catch (SQLException e) {
              } 
            } 

        }

        /**
         * Set the associated entity context. The container calls this method 
         * after the instance creation. The entity bean must not attempt to 
         * access its persistent state and relationships using the accessor 
         * methods during this method. 
         *
         * The enterprise bean instance should store the reference to the 
context 
         * object in an instance variable. 
         * 
         * This method is called with no transaction context. 
         * 
         * @throws EJBException Thrown if method fails due to system-level 
error.
         */
        public void setEntityContext(EntityContext newContext) throws 
EJBException {
                System.out.println("setEntityContext");
                context = newContext;
        }

        /**
         * Unset the associated entity context. A container invokes this method 
         * before terminating the life of the instance. The entity bean must 
not 
         * attempt to access its persistent state and relationships using the 
         * accessor methods during this method. 
         * 
         * This method is called with no transaction context. 
         * 
         * @throws EJBException Thrown if method fails due to system-level 
error.
         */
        public void unsetEntityContext() throws EJBException {
                context = null;
        }
        
        public Connection getConnection() {
                   String DBDriver = null;
                   String DBUrl = null;
                   String DBUserName = null;
                   String DBPassword = null;
                   Context initialContext;
                   Context environment;
                   Connection connect = null;
                   
                   DBUrl      = "jdbc:odbc:EJB";
                   DBUserName = "";
                   DBPassword = "";
                   try {
                                DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
                                Class.forName(DBDriver).newInstance();
                                connect = DriverManager.getConnection(DBUrl, 
DBUserName, DBPassword);
                                System.out.println("Connect");
                   } 
                   catch(Exception e) {
                                System.out.println(e);                  
                                //return;
                   }
                   return connect;
        }

}


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3991036#3991036

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3991036
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to