关于spring数据源管理几点不清楚的地方

来源:互联网 发布:免费tk域名注册网站 编辑:程序博客网 时间:2024/05/20 23:07

请教下spring配置数据源无法获取实例的问题,先传代码:

   /* 本地数据源配置 */

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"          
        destroy-method="close">          
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />         
        <property name="url" value="jdbc:mysql://localhost:3306/album_manager" />         
        <property name="username" value="root" />         
        <property name="password" value="123456" />         
    </bean>


获取连接类:

public class DBUtil {
    static Logger log=Logger.getLogger(DBUtil.class);
    static DataSource dataSource = null;
       /**
     * 获取系统的数据源
     *
     * @return DataSource
     */
    public static DataSource getDataSource() {
        try {
            if(dataSource==null){
                 dataSource = (DataSource) ContextHelper.getContext().getBean("dataSource");
            }
        } catch (Exception e) {
            log.error("获取数据源出错,请检查Spring数据源配置!");
        }
        return dataSource;
    }

    /**
     * 获取数据库连接
     *
     * @return Connection
     */
    public static Connection getConn() {
        Connection conn = null;
        try {
            conn = getDataSource().getConnection();
        } catch (SQLException e) {
            log.error("通过数据源获取数据库连接发生异常!");
            e.printStackTrace();
        }
        return conn;
    }

    public static void closeConn(Connection conn){
        try {
            if(conn!=null){
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

 }


目前存在的问题是每次对数据库操作我都是:

     Connection conn=DBUtil.getConn();

     ...数据库操作

    DBUtil.closeConn(conn);

多次操作后就无法获取conn的连接实例了,程序也不报错,只是到:conn = getDataSource().getConnection();停止了。


敲打发现问题了,判断语句中未关闭连接。尴尬了~


   


原创粉丝点击