您的位置:首页 > 编程语言 > Java开发

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

2012-05-24 15:51 204 查看
请教下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();停止了。


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

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息