用单例模式实现的java连接MySql数据库 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 用单例模式实现的java连接MySql数据库 (http://www.webasp.net/article/16/15685.htm) |
| -- 作者:未知 -- 发布日期: 2004-12-22 |
| 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; } } } |
| webasp.net |