⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appssharepersistance.java

📁 java 写的一个新闻发布系统
💻 JAVA
字号:
////                                   ____.//                       __/\ ______|    |__/\.     _______//            __   .____|    |       \   |    +----+       \//    _______|  /--|    |    |    -   \  _    |    :    -   \_________//   \\______: :---|    :    :           |    :    |         \________>//           |__\---\_____________:______:    :____|____:_____\//                                      /_____|////                 . . . i n   j a h i a   w e   t r u s t . . .//////  AppsSharePersistance////  NK      12.03.2001//package org.jahia.services.shares;import java.sql.*;import java.util.Vector;import java.util.Enumeration;import org.jahia.services.acl.JahiaBaseACL;import org.jahia.services.acl.JahiaACLException;import org.jahia.settings.JahiaPrivateSettings;import org.jahia.registries.ServicesRegistry;import org.jahia.utils.JahiaTools;import org.jahia.utils.JahiaConsole;import org.jahia.exceptions.JahiaException;import org.jahia.exceptions.JahiaInitializationException;import org.jahia.data.JahiaDOMObject;import org.jahia.data.JahiaDBDOMObject;/** * Persistance Storage of Applications share * * @author Khue ng */public class AppsSharePersistance{    private static AppsSharePersistance m_Instance = null;    /**     * constructor     *     */    protected AppsSharePersistance(){    }    //--------------------------------------------------------------------------    /**     * return the singleton instance of this class     *     */    public static synchronized AppsSharePersistance getInstance(){        if ( m_Instance == null ){            m_Instance = new AppsSharePersistance();        }        return m_Instance;    }    //--------------------------------------------------------------------------    /**     * return the list of all sites having access to an app     *     * @param int the app ident     * @return Enumeration , enumeration of site's keys     */    public Enumeration dbGetSites( int appID ) throws JahiaException{        Connection dbConn = null;        Statement statement = null;        Vector vec 	= new Vector();        try {            String sqlQuery = "SELECT * FROM jahia_apps_share where id_aps_appid=" + appID;            dbConn = getDBConnection();            statement = dbConn.createStatement();            if (statement != null) {                ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,sqlQuery );                if (rs != null) {                    int siteID = -1;                    while (rs.next()) {                        siteID = rs.getInt("id_aps_siteid");                        vec.add(new Integer(siteID));                    }                }            }        } catch (SQLException se) {            String errorMsg = "Error in dbGetSites : " + se.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );            throw new JahiaException(   "Cannot retrive site keys from the database",                                        errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );        } finally {            closeDBConnection (dbConn);            closeStatement (statement);        }        return vec.elements();    }    //--------------------------------------------------------------------------    /**     * add a new share between a site and an app     *     * @param int , the app id     * @param int , the site id     */    public void dbAddShare( int appID, int siteID ) throws JahiaException{        if ( dbGetShare(appID,siteID)==null ){            try {                StringBuffer sqlQuery = new StringBuffer("INSERT INTO jahia_apps_share VALUES(");                sqlQuery.append(appID);                sqlQuery.append(",");                sqlQuery.append(siteID);                sqlQuery.append(")");                executeQueryNoResultSet(sqlQuery.toString());                JahiaConsole.println("AppsSharePersistance.dbAddShare", sqlQuery.toString());            } catch (JahiaException je) {                String errorMsg = "Error in dbAddShare(int appid, String siteKey) : " + je.getMessage();                JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );                throw new JahiaException(   "Cannot add app share in the database",                                            errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );            }        }    }    //--------------------------------------------------------------------------    /**     * remove a share between a site and an app     *     * @param int the app id     * @param int the site id     */    public void dbRemoveShare( int appID, int siteID ) throws JahiaException{        try {            StringBuffer sqlQuery = new StringBuffer("DELETE FROM jahia_apps_share WHERE id_aps_appid=");            sqlQuery.append(" and id_aps_siteid=");            sqlQuery.append(siteID);            executeQueryNoResultSet(sqlQuery.toString());        } catch (JahiaException je) {            String errorMsg = "Error in dbRemoveSite(int id) : " + je.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );            throw new JahiaException(   "Cannot remove share in the database",                                        errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );        }    }    //--------------------------------------------------------------------------    /**     * remove all share referencing a site     *     * @param int, the site id     */    public void dbSiteRemoveShares( int siteID ) throws JahiaException{        try {            StringBuffer sqlQuery = new StringBuffer("DELETE FROM jahia_apps_share WHERE id_aps_siteid =");            sqlQuery.append(siteID);            executeQueryNoResultSet(sqlQuery.toString());        } catch (JahiaException je) {            String errorMsg = "Error in dbRemoveShares(int siteID) : " + je.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );            throw new JahiaException(   "Cannot remove share for a gived site in the database",                                        errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );        }    }    //--------------------------------------------------------------------------    /**     * remove all share referencing an app     *     * @param int, the app id     */    public void dbAppRemoveShares( int appID ) throws JahiaException{        try {            StringBuffer sqlQuery = new StringBuffer("DELETE FROM jahia_apps_share WHERE id_aps_appid =");            sqlQuery.append(appID);            executeQueryNoResultSet(sqlQuery.toString());        } catch (JahiaException je) {            String errorMsg = "Error in dbRemoveShares(int appID) : " + je.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );            throw new JahiaException(   "Cannot remove share for a gived app in the database",                                        errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );        }    }    //--------------------------------------------------------------------------    /**     * return a share object or null if not found     *     * @param int, the app id     * @param int, the site id     * @return AppShare, the share bean     */    public AppShare dbGetShare( int appID, int siteID ) throws JahiaException{        Connection dbConn = null;        Statement statement = null;        AppShare share = null;        try {            StringBuffer sqlQuery = new StringBuffer("SELECT * FROM jahia_apps_share where id_aps_appid=");            sqlQuery.append(appID);            sqlQuery.append(" and ");            sqlQuery.append(" id_aps_siteid= ");            sqlQuery.append(siteID);            dbConn = getDBConnection();            statement = dbConn.createStatement();            if (statement != null) {                ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,sqlQuery.toString() );                while ( rs.next() ){                    share = new AppShare(rs.getInt("id_aps_appid"),rs.getInt("id_aps_siteid"));                }            }        } catch (SQLException se) {            String errorMsg = "Error in dbGetShare : " + se.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );            throw new JahiaException(   "Cannot retrieve site keys from the database",                                        errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );        } finally {            closeDBConnection (dbConn);            closeStatement (statement);        }        return share;    }    //--------------------------------------------------------------------------    /**     * return a DOM document of application shares content     *     * @param int the site id     *     * @return JahiaDOMObject a DOM representation of this object     *     * @author NK     */    public JahiaDOMObject getApplicationSharesAsDOM( int siteID )    throws JahiaException{        Connection dbConn = null;        Statement statement = null;        String output = null;        JahiaDBDOMObject dom = null;        try {            /*            String sqlQuery = "SELECT * FROM jahia_apps_share"            +" WHERE id_aps_appid in"            +"(SELECT id_jahia_app_def FROM jahia_app_def where jahiaid_jahia_app_def="+siteID+")";            */            String sqlQuery = "SELECT DISTINCT jahia_apps_share.id_aps_appid,jahia_apps_share.id_aps_siteid"            +" FROM jahia_apps_share,jahia_app_def"            +" WHERE jahia_apps_share.id_aps_appid="            +"jahia_app_def.id_jahia_app_def AND jahia_app_def.jahiaid_jahia_app_def="+siteID;            dbConn = getDBConnection(0);            statement = dbConn.createStatement();            if (statement != null) {                ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,sqlQuery );                if (rs != null) {                    dom = new JahiaDBDOMObject();                    dom.addTable("jahia_apps_share",rs);                    return dom;                }            }        } catch (SQLException se) {            String errorMsg = "Error in getApplicationSharesAsDOM(int siteID) : " + se.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg );            throw new JahiaException(   "Cannot load data from the database",                                        errorMsg, JahiaException.DATABASE_ERROR,                                        JahiaException.CRITICAL );        } finally {            closeDBConnection (dbConn);            closeStatement (statement);        }        return dom;    }    //-------------------------------------------------------------------------    private void executeQueryNoResultSet(String queryStr) throws JahiaException    {        Connection dbConn = null;        Statement statement = null;        try {            dbConn = getDBConnection();            statement = dbConn.createStatement();            if (statement != null) {                ServicesRegistry.getInstance().getDBPoolService().executeUpdate(statement,queryStr);            }        } catch (SQLException se) {            String errorMsg = "Error in executeQueryNoResultSet(String queryStr) : " + se.getMessage();            JahiaConsole.println( "AppsSharePersistance", errorMsg + " -> BAILING OUT" );            throw new JahiaException(   "Cannot execute query" + queryStr,                                        errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL );        } finally {            closeDBConnection (dbConn);            closeStatement (statement);        }    }    //-------------------------------------------------------------------------    private Connection getDBConnection ()    {        Connection dbConn = null;        try {            dbConn = ServicesRegistry.getInstance().getDBPoolService().getConnection ();        }        catch (NullPointerException ex) {            JahiaConsole.println ("AppsSharePersistance", "Null Pointer Exception, DB Pool Service instance might be null!");        }        catch (SQLException ex) {            JahiaConsole.println ("AppsSharePersistance", "SQL Exception: cannot get a connection.");        }        return dbConn;    }    //-------------------------------------------------------------------------    private Connection getDBConnection (int debugInfo)    {        Connection dbConn = null;        try {            dbConn = ServicesRegistry.getInstance().getDBPoolService().getConnection (debugInfo);        }        catch (NullPointerException ex) {            JahiaConsole.println ("AppsSharePersistance", "Null Pointer Exception, DB Pool Service instance might be null!");        }        catch (SQLException ex) {            JahiaConsole.println ("AppsSharePersistance", "SQL Exception: cannot get a connection.");        }        return dbConn;    }    //-------------------------------------------------------------------------    private void closeDBConnection (Connection dbConn)    {        if (dbConn != null) {            try {                ServicesRegistry.getInstance().getDBPoolService().freeConnection (dbConn);            }            catch (SQLException sqlEx) {                // just create an exception without raising it, just to notify it                // in the logs.                JahiaException je = new JahiaException ("Cannot free resources",                        "Cannot free resources", JahiaException.DATABASE_ERROR,                        JahiaException.WARNING);            }            catch (NullPointerException ex) {                JahiaConsole.println ("AppsSharePersistance", "Null Pointer Exception, DB Pool Service instance might be null!");            }        }    }    //-------------------------------------------------------------------------    private void closeStatement (Statement statement)    {        // Close the opened statement        try {            if (statement!=null) {                statement.close();            }        }        catch (SQLException sqlEx) {            // just create an exception without raising it, just to notify it            // in the logs.            JahiaException je = new JahiaException ("Cannot close a statement",                    "Cannot close a statement", JahiaException.DATABASE_ERROR,                    JahiaException.WARNING);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -