DBUtil初級(jí)原始版
- package BaseDao;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
-
- import javax.sql.DataSource;
-
- public class DBUtil {
- public static Connection getConn() throws ClassNotFoundException,
- SQLException {
-
- Class.forName("oracle.jdbc.driver.OracleDriver");
- String url = "jdbc:oracle:thin:@localhost:1521:orcl";
-
-
-
-
-
- String user = "scott";
- String password = "tiger";
-
- Connection conn = DriverManager.getConnection(url, user, password);
- return conn;
- }
-
- public static void closeConn(Connection conn, PreparedStatement ps,
- ResultSet rs) throws SQLException {
- if (conn != null)
- conn.close();
- if (rs != null)
- rs.close();
- if (ps != null)
- ps.close();
- }
- }
使用DBCP 注意在main方法中不能使用 在servlet中使用成功
1.先建立一個(gè)db.properties文件在src下邊
- url=jdbc\:mysql\:
- username=root
- password=root
- driverName=com.mysql.jdbc.Driver
2.寫(xiě)一個(gè)監(jiān)聽(tīng)器,在tomcat啟動(dòng)的時(shí)候就把連接池就初始化
- package Listener;
-
- import java.io.IOException;
- import java.util.Properties;
-
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
-
- import org.apache.commons.dbcp.BasicDataSource;
- import java.util.Properties;
-
-
- import util.DBUtil;
-
- public class InitDataSourceListener implements ServletContextListener{
-
- @Override
- public void contextDestroyed(ServletContextEvent arg0) {
- }
-
- @Override
- public void contextInitialized(ServletContextEvent arg0) {
- Properties properties = new Properties();
- try {
- properties.load(InitDataSourceListener.class.getClassLoader().getResourceAsStream("db.properties"));
- String url = properties.getProperty("url");
- String username = properties.getProperty("username");
- String password = properties.getProperty("password");
- String driverName = properties.getProperty("driverName");
- BasicDataSource basicDataSource = new BasicDataSource();
- basicDataSource.setUrl(url);
- basicDataSource.setUsername(username);
- basicDataSource.setPassword(password);
- basicDataSource.setDriverClassName(driverName);
- basicDataSource.setInitialSize(30);
- basicDataSource.setMaxActive(10);
- basicDataSource.setMaxIdle(20);
- basicDataSource.setMaxWait(1000);
- System.out.println(basicDataSource);
- DBUtil.setDataSource(basicDataSource);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- }
3.配置web.xml
- <listener>
- <listener-class>Listener.InitDataSourceListener</listener-class>
- </listener>
4.再寫(xiě)DBUtil
- package util;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
-
- import javax.sql.DataSource;
-
-
- public class DBUtil {
- private static DataSource dataSource = null;
-
- public static DataSource getDataSource() {
- return dataSource;
- }
-
- public static Connection getConnection(){
- Connection conn = null;
- try {
- conn = dataSource.getConnection();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return conn;
- }
-
- public static void setDataSource(DataSource dataSource) {
- DBUtil.dataSource = dataSource;
- }
-
-
- public static void closeConn(Connection conn, PreparedStatement ps,
- ResultSet rs) throws SQLException {
- if (conn != null)
- conn.close();
- if (rs != null)
- rs.close();
- if (ps != null)
- ps.close();
- }
- }
|