BaseUpdateCommand.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package examples.datacommands;
  2. import javax.sql.*;
  3. import javax.naming.InitialContext;
  4. import javax.naming.NamingException;
  5. import javax.ejb.EJBException;
  6. import java.sql.*;
  7. /**
  8.  * The Super class for any data command beans that Create, Update or Delete
  9.  * This class is reusable across projects, all proj. specific data
  10.  * (Datasource JDNI and SQl String) are left to the subclasses
  11.  */
  12. abstract class BaseUpdateCommand {
  13. protected PreparedStatement pstmt;
  14. private Connection con;
  15. protected BaseUpdateCommand ( String jndiName, String statement ) throws DataCommandException
  16.     {
  17.         InitialContext ctx = null;
  18.         try
  19.         {
  20.             ctx = new InitialContext();
  21.             DataSource ds = (javax.sql.DataSource) ctx.lookup(jndiName);
  22.             con = ds.getConnection();
  23.             pstmt = con.prepareStatement(statement);
  24.         }
  25.         catch (NamingException e)
  26.         {
  27.             throw new DataCommandException(e.getMessage());
  28.         }
  29.         catch (SQLException e)
  30.         {
  31.             throw new DataCommandException(e.getMessage());
  32.         }
  33. }
  34. public int execute() throws DataCommandException
  35. {
  36.         try
  37.         {
  38.             //execute update, return the rowcount
  39.             int updateCount = pstmt.executeUpdate();
  40.             this.release();
  41.             return updateCount;
  42.         } catch (SQLException e)
  43.         {
  44.             throw new DataCommandException(e.getMessage());
  45.         }
  46. }
  47. private void release() throws SQLException
  48. {
  49.         if (pstmt != null) pstmt.close();
  50.         if (con != null) con.close();
  51. }
  52. }