package com.zhen.database;
import com.zhen.util.*;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBPool{
private static DBPool instance=null;
private Connection con=null;
private DataSource ds=null;
public DBPool()throws Exception
{
//从属性文件中读取数据源名称
InputStream in = getClass().getClassLoader().getResourceAsStream(
"dataSource.properties");
Properties prop = new Properties();
prop.load(in);
String name = prop.getProperty("DataSourceName");
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/"+name);
//InitialContext ctx=new InitialContext();
//ds=(DataSource)ctx.lookup("java:comp/env/jdbc/ds");
}
public synchronized static DBPool getInstance()
{
try
{
if(instance==null)
{
instance=new DBPool();
}
return instance;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public Connection getConnection(String name,Connection conn)throws SQLException
{
con=ds.getConnection();
return con;
}
public void freeConnection(String name,Connection con) {
try
{
if(con!=null)
{
con.close();
}
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public Connection getConnection()throws Exception
{
con=ds.getConnection();
return con;
/*try
{
String Driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost/uc";
Class.forName(Driver);
Connection con=DriverManager.getConnection(url,"root","root");
return con;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}*/
/*try
{
String serverName="localhost";
String driver="oracle.jdbc.driver.OracleDriver";
String sConnStr="jdbc:oracle:thin:@"+serverName+":1521:oracle";
Class.forName(driver);
Connection con=DriverManager.getConnection(sConnStr,"scott","tiger");
return con;
}
catch(SQLException e)
{
e.printStackTrace();
throw e;
}*/
}
public void CloseConenction(Connection con)
{
try
{
if(con!=null)
{
con.close();
}
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public void CloseAllConnection()
{
try
{
if(con!=null)
{
con.close();
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}