You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-dev@jakarta.apache.org by as...@apache.org on 2007/03/20 05:35:32 UTC
svn commit: r520270 - in /jakarta/jcs/trunk: project.properties
src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java
Author: asmuts
Date: Mon Mar 19 21:35:30 2007
New Revision: 520270
URL: http://svn.apache.org/viewvc?view=rev&rev=520270
Log:
For performance reasons, I changed the JDBC disk queries and updates to all consistently use prepared statements.
Modified:
jakarta/jcs/trunk/project.properties
jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java
Modified: jakarta/jcs/trunk/project.properties
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/project.properties?view=diff&rev=520270&r1=520269&r2=520270
==============================================================================
--- jakarta/jcs/trunk/project.properties (original)
+++ jakarta/jcs/trunk/project.properties Mon Mar 19 21:35:30 2007
@@ -1,7 +1,7 @@
# -------------------------------------------------------------------
# REPOS
# -------------------------------------------------------------------
-maven.repo.remote=http://ibiblio.org/maven,http://maven-plugins.sourceforge.net
+maven.repo.remote=http://ibiblio.org/maven,http://repository.codehaus.org/org/codehaus/mojo/,http://maven-plugins.sourceforge.net,http://maven-plugins.sourceforge.net/repository/maven-plugins/
# -------------------------------------------------------------------
# XDOC
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java?view=diff&rev=520270&r1=520269&r2=520270
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java Mon Mar 19 21:35:30 2007
@@ -372,21 +372,18 @@
return exists;
}
- Statement sStatement = null;
+ PreparedStatement psSelect = null;
try
{
- sStatement = con.createStatement();
-
// don't select the element, since we want this to be fast.
- String sqlS = "select CACHE_KEY from " + getJdbcDiskCacheAttributes().getTableName() + " where REGION = '"
- + this.getCacheName() + "' and CACHE_KEY = '" + (String) ce.getKey() + "'";
+ String sqlS = "select CACHE_KEY from " + getJdbcDiskCacheAttributes().getTableName()
+ + " where REGION = ? and CACHE_KEY = ?";
- if ( log.isDebugEnabled() )
- {
- log.debug( sqlS );
- }
+ psSelect = con.prepareStatement( sqlS );
+ psSelect.setString( 1, this.getCacheName() );
+ psSelect.setString( 2, (String) ce.getKey() );
- ResultSet rs = sStatement.executeQuery( sqlS );
+ ResultSet rs = psSelect.executeQuery();
if ( rs.next() )
{
@@ -408,7 +405,11 @@
{
try
{
- sStatement.close();
+ if ( psSelect != null )
+ {
+ psSelect.close();
+ }
+ psSelect.close();
}
catch ( SQLException e1 )
{
@@ -466,9 +467,8 @@
psSelect = con.prepareStatement( selectString );
psSelect.setString( 1, this.getCacheName() );
psSelect.setString( 2, key.toString() );
- ResultSet rs = null;
- rs = psSelect.executeQuery();
+ ResultSet rs = psSelect.executeQuery();
try
{
if ( rs.next() )
@@ -545,25 +545,37 @@
public boolean doRemove( Serializable key )
{
// remove single item.
- String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName() + " where CACHE_KEY = '" + key
- + "' and REGION = '" + this.getCacheName() + "'";
+ String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName()
+ + " where REGION = ? and CACHE_KEY = ?";
try
{
+ boolean partial = false;
if ( key instanceof String && key.toString().endsWith( CacheConstants.NAME_COMPONENT_DELIMITER ) )
{
// remove all keys of the same name group.
- sql = "delete from " + getJdbcDiskCacheAttributes().getTableName() + " where REGION = '"
- + this.getCacheName() + "' and CACHE_KEY like '" + key + "%'";
+ sql = "delete from " + getJdbcDiskCacheAttributes().getTableName()
+ + " where REGION = ? and CACHE_KEY like ?";
+ partial = true;
}
Connection con = poolAccess.getConnection();
- Statement sStatement = null;
+ PreparedStatement psSelect = null;
try
{
- sStatement = con.createStatement();
- alive = true;
+ psSelect = con.prepareStatement( sql );
+ psSelect.setString( 1, this.getCacheName() );
+ if ( partial )
+ {
+ psSelect.setString( 2, key.toString() + "%" );
+ }
+ else
+ {
+ psSelect.setString( 2, key.toString() );
+ }
+
+ psSelect.executeUpdate( );
- sStatement.executeUpdate( sql );
+ alive = true;
}
catch ( SQLException e )
{
@@ -574,9 +586,9 @@
{
try
{
- if ( sStatement != null )
+ if ( psSelect != null )
{
- sStatement.close();
+ psSelect.close();
}
con.close();
}
@@ -603,16 +615,15 @@
{
try
{
- String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName() + " where REGION = '"
- + this.getCacheName() + "'";
+ String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName() + " where REGION = ?";
Connection con = poolAccess.getConnection();
- Statement sStatement = null;
+ PreparedStatement psDelete = null;
try
{
- sStatement = con.createStatement();
+ psDelete = con.prepareStatement( sql );
+ psDelete.setString( 1, this.getCacheName() );
alive = true;
-
- sStatement.executeUpdate( sql );
+ psDelete.executeUpdate( );
}
catch ( SQLException e )
{
@@ -623,9 +634,9 @@
{
try
{
- if ( sStatement != null )
+ if ( psDelete != null )
{
- sStatement.close();
+ psDelete.close();
}
con.close();
}
@@ -671,17 +682,21 @@
// + this.getCacheName() + "' and IS_ETERNAL = 'F' and (" + now
// + " - CREATE_TIME_SECONDS) > MAX_LIFE_SECONDS";
- String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName() + " where REGION = '"
- + this.getCacheName() + "' and IS_ETERNAL = 'F' and " + now + " > SYSTEM_EXPIRE_TIME_SECONDS";
+ String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName()
+ + " where IS_ETERNAL = ? and REGION = ? and ? > SYSTEM_EXPIRE_TIME_SECONDS";
Connection con = poolAccess.getConnection();
- Statement sStatement = null;
+ PreparedStatement psDelete = null;
try
{
- sStatement = con.createStatement();
+ psDelete = con.prepareStatement( sql );
+ psDelete.setString( 1, "F" );
+ psDelete.setString( 2, this.getCacheName() );
+ psDelete.setLong( 3, now );
+
alive = true;
- deleted = sStatement.executeUpdate( sql );
+ deleted = psDelete.executeUpdate( );
}
catch ( SQLException e )
{
@@ -692,9 +707,9 @@
{
try
{
- if ( sStatement != null )
+ if ( psDelete != null )
{
- sStatement.close();
+ psDelete.close();
}
con.close();
}
@@ -894,7 +909,7 @@
{
return this.getJdbcDiskCacheAttributes();
}
-
+
/**
* Extends the parent stats.
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jcs-dev-help@jakarta.apache.org