Search in sources :

Example 21 with DatasourceConnection

use of lucee.runtime.db.DatasourceConnection in project Lucee by lucee.

the class DatasourceResourceProvider method setLastModified.

public boolean setLastModified(ConnectionData data, int fullPathHash, String path, String name, long time) {
    try {
        Attr attr = getAttr(data, fullPathHash, path, name);
        DatasourceConnection dc = getDatasourceConnection(data);
        try {
            getCore(data).setLastModified(dc, data.getPrefix(), attr, time);
        } finally /*catch (SQLException e) {
				return false;
			} */
        {
            removeFromCache(data, path, name);
            release(dc);
        // manager.releaseConnection(CONNECTION_ID,dc);
        }
    } catch (Throwable t) {
        ExceptionUtil.rethrowIfNecessary(t);
        return false;
    }
    return true;
}
Also used : DatasourceConnection(lucee.runtime.db.DatasourceConnection)

Example 22 with DatasourceConnection

use of lucee.runtime.db.DatasourceConnection in project Lucee by lucee.

the class DatasourceResourceProvider method getInputStream.

public InputStream getInputStream(ConnectionData data, int fullPathHash, String path, String name) throws IOException {
    Attr attr = getAttr(data, fullPathHash, path, name);
    if (attr == null)
        throw new IOException("file [" + path + name + "] does not exist");
    DatasourceConnection dc = null;
    try {
        dc = getDatasourceConnection(data);
        return getCore(data).getInputStream(dc, data.getPrefix(), attr);
    } catch (SQLException e) {
        throw new IOException(e.getMessage());
    } catch (PageException e) {
        throw new PageRuntimeException(e);
    } finally {
        release(dc);
    // manager.releaseConnection(CONNECTION_ID,dc);
    }
}
Also used : PageException(lucee.runtime.exp.PageException) DatasourceConnection(lucee.runtime.db.DatasourceConnection) SQLException(java.sql.SQLException) IOException(java.io.IOException) PageRuntimeException(lucee.runtime.exp.PageRuntimeException)

Example 23 with DatasourceConnection

use of lucee.runtime.db.DatasourceConnection in project Lucee by lucee.

the class DatasourceResourceProvider method _getAttr.

private Attr _getAttr(ConnectionData data, int fullPathHash, String path, String name) throws PageException {
    if (!StringUtil.isEmpty(data.getDatasourceName())) {
        DatasourceConnection dc = null;
        try {
            dc = getDatasourceConnection(data);
            Attr attr = getCore(data).getAttr(dc, data.getPrefix(), fullPathHash, path, name);
            if (attr != null)
                return putToCache(data, path, name, attr);
        } catch (SQLException e) {
            throw new DatabaseException(e, dc);
        } finally {
            getManager().releaseConnection(ThreadLocalPageContext.get(), dc);
        }
    }
    return putToCache(data, path, name, Attr.notExists(name, path));
}
Also used : DatasourceConnection(lucee.runtime.db.DatasourceConnection) SQLException(java.sql.SQLException) DatabaseException(lucee.runtime.exp.DatabaseException)

Example 24 with DatasourceConnection

use of lucee.runtime.db.DatasourceConnection in project Lucee by lucee.

the class MySQL method writeInsert.

private void writeInsert(DatasourceConnection dc, String prefix, Attr attr, InputStream is) throws SQLException {
    PreparedStatement stat1 = null;
    Statement stat2 = null;
    PreparedStatement stat3 = null;
    ResultSet rs = null;
    try {
        // Insert
        String sql = "insert into " + prefix + "data (rdr_data) values(?)";
        log(sql);
        Connection conn = dc.getConnection();
        stat1 = dc.getConnection().prepareStatement(sql);
        stat1.setBinaryStream(1, is, -1);
        stat1.execute();
        // select
        sql = "select rdr_id,Length(rdr_data) as DataLen from " + prefix + "data order by rdr_id desc LIMIT 1";
        log(sql);
        stat2 = conn.createStatement();
        rs = stat2.executeQuery(sql);
        // update
        if (rs.next()) {
            sql = "update " + prefix + "attrs set rdr_data=?,rdr_length=? where rdr_id=?";
            log(sql);
            stat3 = dc.getConnection().prepareStatement(sql);
            stat3.setInt(1, rs.getInt(1));
            stat3.setInt(2, rs.getInt(2));
            stat3.setInt(3, attr.getId());
            stat3.executeUpdate();
        }
    } finally {
        DBUtil.closeEL(rs);
        DBUtil.closeEL(stat1);
        DBUtil.closeEL(stat2);
    }
}
Also used : PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) ResultSet(java.sql.ResultSet) Connection(java.sql.Connection) DatasourceConnection(lucee.runtime.db.DatasourceConnection) PreparedStatement(java.sql.PreparedStatement)

Aggregations

DatasourceConnection (lucee.runtime.db.DatasourceConnection)24 SQLException (java.sql.SQLException)14 ConfigImpl (lucee.runtime.config.ConfigImpl)10 PageException (lucee.runtime.exp.PageException)9 DataSource (lucee.runtime.db.DataSource)8 DatabaseException (lucee.runtime.exp.DatabaseException)8 Log (lucee.commons.io.log.Log)7 DatasourceConnectionPool (lucee.runtime.db.DatasourceConnectionPool)7 SQLExecutor (lucee.runtime.type.scope.storage.db.SQLExecutor)7 ApplicationException (lucee.runtime.exp.ApplicationException)5 DataSourceManager (lucee.runtime.db.DataSourceManager)4 PageRuntimeException (lucee.runtime.exp.PageRuntimeException)4 QueryImpl (lucee.runtime.type.QueryImpl)4 Struct (lucee.runtime.type.Struct)4 IOException (java.io.IOException)3 ResultSet (java.sql.ResultSet)3 StructImpl (lucee.runtime.type.StructImpl)3 Connection (java.sql.Connection)2 Iterator (java.util.Iterator)2 SQL (lucee.runtime.db.SQL)2