JDBC

    技术2022-05-20  58

    1:写个资源配置文件【把数据库连接的几个属性配置到里边】

    2:我这里使用的是mysql数据库

    3:写个如下类:

    4:进行测试

    //连接池 private Vector<Connection> pool ; private String driverClassName; private String url; private String username; private String userpswd;  private int poolSize=1; private static JDBC_连接池 instance =null;  private JDBC_连接池() {  init(); }  private void init(){  pool = new Vector<Connection>(poolSize);  readConfig();  addConnection(); }  public synchronized void release(Connection con){  pool.add(con); }  public synchronized void closeAllPool(){  for (int i = 0; i < pool.size(); i++) {   try {    pool.get(i).close();   } catch (SQLException e) {    e.printStackTrace();   }   pool.remove(i);  } }  public synchronized Connection getConnection(){  if(pool.size()>0){   Connection con = pool.get(0);   pool.remove(con);   return con;  }else{   return null;  } }  public static JDBC_连接池 getMyConnPool(){  if(instance == null){   return instance = new JDBC_连接池();  }else{   return instance;  } }  public void addConnection(){  Connection conn = null;  for (int i = 0; i < poolSize; i++) {   try {    Class.forName(driverClassName);    conn = DriverManager.getConnection(url, username, userpswd);    pool.add(conn);   } catch (ClassNotFoundException e) {    e.printStackTrace();   } catch (SQLException e) {    e.printStackTrace();   }  } }  private void readConfig(){

      //这个东东有点马马虎虎,路经问题???  String path = System.getProperty("user.dir")+"//scr//dbpool.properties";  try {   FileInputStream is = new FileInputStream(path);   Properties p = new Properties();   p.load(is);   this.driverClassName = p.getProperty("driverClassName");   this.url = p.getProperty("url");   this.username = p.getProperty("username");   this.userpswd = p.getProperty("password");   this.poolSize=Integer.parseInt(p.getProperty("poolSize"));  } catch (Exception e) {   e.printStackTrace();   System.out.println("文件读取错误!!!!");  }

     }

     

    测试代码 :

      JDBC_连接池 j = JDBC_连接池.getMyConnPool();  for (int i = 0; i < 5; i++) {   Connection conn = j.getConnection();   System.out.println(conn.toString());   j.release(conn);//释放连接  这样的话,每次不停地释放,不会出现空指针异常了  }

    如果超出配置文件的个数,就会出现空指针异常!


    最新回复(0)