No older revisions available
Default :
public class BlogManager {
private Connection conn;
private static Logger logger = Logger.getLogger(BlogManager.class);
public BlogManager(){
try {
//Class.forName("com.mysql.jdbc.Driver").newInstance();
//conn = DriverManager.getConnection("jdbc:mysql://localhost/setzer?user=setzer&password=PASSWORD&useUnicode=true&characterEncoding=utf8");
Class.forName("org.postgresql.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:postgresql://localhost/setzer","setzer","PASSWORD");
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException ex) {
logger.error("SQLException: " + ex.getMessage());
logger.error("SQLState: " + ex.getSQLState());
logger.error("VendorError: " + ex.getErrorCode());
}
}
}
일반적인 연결 ¶
/*
* Created on 2005. 4. 3
*/
package net.db;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;
/**
* @author setzer
*/
public class ConnectionFactory {
private static DataSource datasource = null;
private static Logger logger = Logger.getLogger(ConnectionFactory.class);
private ConnectionFactory(){
//ignore
}
public static Connection getConnection() throws SQLException{
if(datasource == null){
datasource = getDataSource("jdbc:postgresql://localhost/setzer");
}
return datasource.getConnection();
}
private static DataSource getDataSource(String connectURI){
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("org.postgresql.Driver");
ds.setUsername("setzer");
ds.setPassword("PASSWORD");
ds.setUrl(connectURI);
return ds;
}
private static void shutdownDataSource(DataSource ds) throws SQLException{
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
}
리소스 번들을 이용 ¶
/*
* Created on 2005. 4. 3
*/
package net.db;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;
/**
* @author setzer
*/
public class ConnectionFactory extends HttpServlet{
private static DataSource datasource = null;
private static Logger logger = Logger.getLogger(ConnectionFactory.class);
private static ConnectionFactory instance = null;
private static Properties props = null;
public ConnectionFactory(){
/*
try{
this.init();
}catch(ServletException e){
logger.error(e);
}
*/
}
public void init() throws ServletException{
props = new Properties();
try{
InputStream in = getServletContext().getResourceAsStream("/WEB-INF/db.properties");
props.load(in);
in.close();
setDataSource(props);
}catch(IOException e){
throw new ServletException(e);
}
instance = this;
}
public void destroy(){
try{
shutdownDataSource();
}catch(SQLException e){
logger.error(e);
}
}
public static ConnectionFactory getInstance(){
if(instance == null){
instance = new ConnectionFactory();
}
return instance;
}
public static Connection getConnection() throws SQLException{
if(datasource == null){
throw new SQLException();
}
return datasource.getConnection();
}
private static void setDataSource(Properties props) throws IOException{
BasicDataSource ds = new BasicDataSource();
//almost, default value is 8
//logger.error(new Integer(ds.getMaxActive()));
ds.setMaxActive(Integer.parseInt(props.getProperty("connection.maxActive")));
ds.setDriverClassName(props.getProperty("connection.driver"));
ds.setUsername(props.getProperty("user"));
ds.setPassword(props.getProperty("password"));
ds.setUrl(props.getProperty("connection.url"));
datasource = ds;
}
private static void shutdownDataSource() throws SQLException{
BasicDataSource bds = (BasicDataSource) datasource;
bds.close();
}
}
db.properties :
connection.maxActive=0 connection.driver=org.postgresql.Driver connection.url=jdbc:postgresql://localhost/setzer user=setzer password=PASSWORD