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()); } } }


Tomcat JNDI DataSource
[http]참고

일반적인 연결

/* * 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 
powered by Moniwiki | themed by clockoon
last modified 2008-12-30 10:44:13
Processing time 0.3430 sec