参考设计模式 唯一实例。把初试话方法放在构造方法里
把这个类的构造方法声明成PRIVATE,这样就没有能调用他,最了他自己
public class A{
pulbic A a; //本身定义一个实例
private A(){ //出事话方法
} public A getA(){
if(a=null)
A(); return a;
}}
把这个类的构造方法声明成PRIVATE,这样就没有能调用他,最了他自己
public class A{
pulbic A a; //本身定义一个实例
private A(){ //出事话方法
} public A getA(){
if(a=null)
A(); return a;
}}
解决方案 »
- 懂portlet的进来指点一下。。。
- 单点登录和RBAC结合时的权限问题
- 求解servlet设置问题。。。
- 请问有谁知道怎样在myeclipse里面使用struts的example代码?
- 新的算法再现CSDN
- 弹出窗口中的提交struts怎么返回到父页面?
- 关于jar文件转化为exe文件的过程?
- 调用Hibernate,Session接口所实现的功能属于 业务逻辑层 吗?
- Tom卡在这里无法解决 信息: No Spring WebApplicationInitializer types detected on classpath
- 关于Spring的bean注入问题
- 请教:方向的问题
- CallBack 是什么意思?
那么可以把代码写在static{
//这个中间
}
类的代码如下:
package ordermanager.db;import ordermanager.db.*;
import javax.naming.*;
import java.sql.*;
import javax.sql.*;public class DataSourceMgr { static public DataSource ds;
static String name = "pool";
static String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
static String url = "jdbc:odbc:datasource"; private DataSourceMgr() throws SQLException,NameNotFoundException,NameAlreadyBoundException,ClassNotFoundException,IllegalAccessException,InstantiationException{
ConnectionParam param = new ConnectionParam(driver,url,null,null);
param.setMinConnection(1);
param.setMaxConnection(5);
param.setTimeoutValue(20000);
ConnectionFactory.bind(name, param);
} public DataSource getDataSource() throws SQLException,NameNotFoundException,NameAlreadyBoundException,ClassNotFoundException,IllegalAccessException,InstantiationException{
if (ds==null){
ds = ConnectionFactory.lookup(name) ;
}
return ds;
}}
import javax.naming.*;
import java.sql.*;
import javax.sql.*;public class DataSourceMgr { public DataSource ds;
String name = "pool";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:datasource"; private DataSourceMgr() throws SQLException,NameNotFoundException,NameAlreadyBoundException,ClassNotFoundException,IllegalAccessException,InstantiationException{
ConnectionParam param = new ConnectionParam(driver,url,null,null);
param.setMinConnection(1);
param.setMaxConnection(5);
param.setTimeoutValue(20000);
ConnectionFactory.bind(name, param);
ds = ConnectionFactory.lookup(name);
} public DataSource getDataSource() throws SQLException,NameNotFoundException,NameAlreadyBoundException,ClassNotFoundException,IllegalAccessException,InstantiationException{
if (ds==null){
new DataSourceMgr();
}
return ds;
}
}
这是我最新的类,调用的方式为:
DataSource ds = new DataSourceMgr().getDataSource();
但是由于DataSourceMgr()虚构函数声明为private,所以上面的调用是失败的
如果把虚构函数声明为public,则两次调用的时候就会出现NameAlreadyBoundException
我要的就是只初始化一次,但是每次调用可以得到DataSource,应该如何改啊?
Java 的JDBC 数据库连接池实现方法
http://www.csdn.net/develop/read_article.asp?id=21140