import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.springframework.core.io.support.PropertiesLoaderUtils;
/**
*
* @author lyh
* @version
* @see DbManager
* @since
*/
public class DbManager
{
/**
* 日志
*/
private static final Logger LOGGER = Logger.getLogger(DbManager.class);
/**
* 命名上下文
*/
private static Context initctx = null;
/**
* 资源文件
*/
private static Properties prop = null;
/**
* 数据源
*/
@SuppressWarnings("unused")
private static DataSource bds = null;
/**
* jndi名称
*/
private static String jndiName = "";
/**
* 驱动
*/
private static String driver = "";
/**
* url
*/
private static String url = "";
/**
* db用户名
*/
private static String username = "";
/**
* db密码
*/
private static String password = "";
static
{
try
{
prop = PropertiesLoaderUtils.loadAllProperties("jdbc.properties");
}
catch (IOException e1)
{
LOGGER.error(e1.getMessage());
}
// load jdbc.properties
driver = (String)prop.get("driver");
url = (String)prop.get("url");
username = (String)prop.get("username");
password = (String)prop.get("password");
// jndiName e.g. java:comp/env/jdbc/rhy
jndiName = (String)prop.get("jndiName");
// for jndi
// init();
try
{
Class.forName(driver);
}
catch (ClassNotFoundException e)
{
LOGGER.error(e.getMessage());
}
}
/**
*
* Description: 获得DB连接<br>
* @return
* @see
*/
public static Connection getDBConnection()
{
// for jndi
/*Connection con = null;
try
{
con = bds.getConnection();
}
catch (SQLException e)
{
LOGGER.error(e.getMessage());
}
return con;
*/
Connection con = null;
try
{
con = (Connection) DriverManager.getConnection(url, username, password);
}
catch (SQLException e)
{
LOGGER.error(e.getMessage());
}
return con;
}
/**
*
* Description:关闭DB连接 <br>
* @param con
* @see
*/
public static void closeDBConnection(Connection con)
{
try
{
if (con != null && !con.isClosed())
{
con.close();
}
}
catch (Exception e)
{
LOGGER.error(e.getMessage());
}
}
/**
*
* Description:jndi init method <br>
* @see
*/
@SuppressWarnings("unused")
private static void init()
{
try
{
initctx = new InitialContext();
bds = (DataSource) initctx.lookup(jndiName);
}
catch (Exception e)
{
LOGGER.error(e.getMessage());
}
}
}
JNDI创建java.sql.Connection
最新推荐文章于 2022-05-16 23:37:46 发布