zoukankan      html  css  js  c++  java
  • 一个很好用的java操作数据库连接池的类

    /*
     * Created on 2007-1-11
     */
    package wangyq.datasource;

    /**
     * @author wangyaqiang
     * @version 1.0
     * @link http://niceboy.cnblogs.com
     */
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;

    public class MySqlDataSource {

     
     public Connection conn;
     public ResultSet rs;
     public Statement stmt;
       
     private static DataSource ds;
     /**
      *
      * 2007-1-12
      * wangyq
      *
      */
     public MySqlDataSource() {
      try
      {
         Context ctx = new InitialContext();
         if(ctx == null )
           throw new Exception("No Context");
     
         ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
     
         if (ds != null) {
         conn = ds.getConnection();
              
        if(conn != null)  {
        
        }
         }
      }catch(Exception e) {
         e.printStackTrace();
      }

     }
     
     public DataSource getDataSource()
     {
      try
      {
         Context initCtx = new InitialContext();
         if(initCtx == null )
         throw new Exception("No Context");
         Context envCtx=(Context)initCtx.lookup("java:comp/env");
         ds = (DataSource)envCtx.lookup("jdbc/mysql");

         if (ds != null) {
         return ds;
         }
         return null;
      }catch(Exception e) {
       e.printStackTrace();
       return null;
      }
     }
     /**
      *
      * @return
      *
      */
     public Connection getConnection()
     {
      try
      {
       return ds.getConnection();
      }
      catch(Exception e)
      {
       e.printStackTrace();
       return null;
      }
     }
     /**
      *
      * @param sql
      * @return
      */
     public ResultSet executeQuery(String sql)
       {
      rs=null;
      try
      {
       stmt=conn.createStatement();
       rs=stmt.executeQuery(sql);
      } 
      catch(SQLException ex)
      {
       System.err.println("MySqlDataSource.executeQuery():"+ex.getMessage());
      }
      return rs;
       }
       /**
        *
        * @param sql
        *
        */
        public void executeUpdate(String sql)
        {
       stmt=null;
       rs=null;
       try
       {
        stmt=conn.createStatement();
        stmt.executeUpdate(sql);
        stmt.close();
        conn.close();
       }
       catch(SQLException ex)
       {
        System.err.println("MySqlDataSource.executeQuery():"+ex.getMessage());
       }
        }
        /**
         *
         * @return
         *
         */
        public DatabaseMetaData getDbmd()
        {
       conn=null;
       DatabaseMetaData dbmd=null;
       try
       {
        dbmd=conn.getMetaData();
       }
       catch(SQLException ex)
       {
        System.err.println("MySqlDataSource.executeQuery():"+ex.getMessage());
       }
       return dbmd;
        }
        /**
         *
         * @return
         *
         */
       public boolean CloseConnection()
       {
       try
       {
        conn.close();
        return true;
       }
       catch(SQLException e)
       {
        e.printStackTrace();
        return false;
       }
       }
       /**
        *
        * @return
        *
        */
       public boolean CloseStmt()
       {
       try
       {
        stmt.close();
        return true;
       }
       catch(SQLException e)
       {
        e.printStackTrace();
        return false;
       }

       }
    }

    使用时需要根据自己的项目稍微修改一下
    Context envCtx=(Context)initCtx.lookup("java:comp/env");
     ds = (DataSource)envCtx.lookup("jdbc/mysql");
    改成自己的配置路径就可以了。当然也可以用参数把路径参给这个类,不过我很懒,能用就行了。

  • 相关阅读:
    在小米 三星 索尼 手机 :图标上显示数字
    HDU 1873 看病要排队
    简单的WINFORM窗口,体验WINFORM带来的快感
    java初探秘之推断输入的一串字符是否全为小写字母
    【Android 面试基础知识点整理】
    互联网+时代IT管理者的转型
    hdu 1233 还是畅通project (克鲁斯卡尔裸题)
    经验之谈—让你看明确block
    字典树
    设计模式之问题集锦(一)
  • 原文地址:https://www.cnblogs.com/niceboy/p/815813.html
Copyright © 2011-2022 走看看