WEB开发网
开发学院WEB开发Jsp 用单例模式实现的java连接MySql数据库 阅读

用单例模式实现的java连接MySql数据库

 2008-01-05 18:36:48 来源:WEB开发网   
核心提示: package com.adrop.util; import java.sql.*; public class DBManager {//用户名 PRivate String user = "";//密码 private String passWord = "";//主机

 

package com.adrop.util;

 

import java.sql.*;

 

public class DBManager {

//用户名

  PRivate String user = "";

//密码

  private String passWord = "";

//主机

  private String host = "";

//数据库名字

  private String database = "";

//private DBManager dbm=null;

 

  /*

   private String url="jdbc:MySQL://"+host+"/"+"useUnicode=true&characterEncoding=GB2312";

  */

  private String url ="";

  private Connection con = null;

 

  Statement stmt;

  /**

  * 私有的构造方法,保证外部不能实例化,只能由DBManager自己能提供自

* 己的实例,并且只能有一个。

  * 根据主机、数据库名称、数据库用户名、数据库用户密码取得连接。

  * @param host String

  * @param database String

  * @param user String

  * @param password String

  */

  private DBManager(String host, String database, String user, String password) {

 

   this.host = host;

   this.database = database;

   this.user = user;

this.password = password;

//显示中文

   this.url = "jdbc:mysql://" + host + "/" + database +

     "?useUnicode=true&characterEncoding=GB2312";

 

   try {

    Class.forName("org.gjt.mm.mysql.Driver");

   }

   catch (ClassNotFoundException e) {

    System.err.println("class not found:" + e.getMessage());

   }

 

   try {

    con = DriverManager.getConnection(this.url, this.user, this.password);

//连接类型为ResultSet.TYPE_SCROLL_INSENSITIVE,                 ResultSet.CONCUR_READ_ONLY

    stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                 ResultSet.CONCUR_READ_ONLY);

   }

   catch (SQLException a) {

    System.err.println("sql exception:" + a.getMessage());

   }

  }

/**

* 静态工厂方法,来获得一个DBManager实例

*/

public static DBManager getInstance(String host, String database, String user, String password){

   if(dbm==null){

    dbm=new DBManager(host,database,user,password);

   }

   return dbm;

}

/**

* 返回取得的连接

*/

  public Connection getCon() {

   return con;

  }

/**

* 执行一条简单的查询语句

* 返回取得的结果集

*/

  public ResultSet executeQuery(String sql) {

   ResultSet rs = null;

   try {

    rs = stmt.executeQuery(sql);

   }

   catch (SQLException e) {

    e.printStackTrace();

   }

   return rs;

  }

/**

* 执行一条简单的更新语句

* 执行成功则返回true

*/

  public boolean executeUpdate(String sql) {

   boolean v = false;

   try {

    v = stmt.executeUpdate(sql) > 0 ? true : false;

   }

   catch (SQLException e) {

    e.printStackTrace();

   }

   finally {

    return v;

   }

  }

 

}

 

 


Tags:单例 模式 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接