All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.avaje.ebean.SqlUpdate Maven / Gradle / Ivy

There is a newer version: 8.1.1
Show newest version
package com.avaje.ebean;

/**
 * A SqlUpdate for executing insert update or delete statements.
 * 

* Provides a simple way to execute raw SQL insert update or delete statements * without having to resort to JDBC. *

*

* Supports the use of positioned or named parameters and can automatically * notify Ebean of the table modified so that Ebean can maintain its cache. *

*

* Note that {@link #setAutoTableMod(boolean)} and * Ebean#externalModification(String, boolean, boolean, boolean)} can be to * notify Ebean of external changes and enable Ebean to maintain it's "L2" * server cache. *

* *
 * // example that uses 'named' parameters 
 * String s = "UPDATE f_topic set post_count = :count where id = :id"
 * SqlUpdate update = Ebean.createSqlUpdate(s);
 * update.setParameter("id", 1);
 * update.setParameter("count", 50);
 * 
 * int modifiedCount = Ebean.execute(update);
 * 
 * String msg = "There where " + modifiedCount + "rows updated"
 * 
* * @see Update * @see SqlQuery * @see CallableSql */ public interface SqlUpdate { /** * Execute the update returning the number of rows modified. *

* After you have executed the SqlUpdate you can bind new variables using * {@link #setParameter(String, Object)} etc and then execute the SqlUpdate * again. *

*

* For JDBC batch processing refer to * {@link Transaction#setBatchMode(boolean)} and * {@link Transaction#setBatchSize(int)}. *

* * @see com.avaje.ebean.Ebean#execute(SqlUpdate) */ int execute(); /** * Return true if eBean should automatically deduce the table modification * information and process it. *

* If this is true then cache invalidation and text index management are aware * of the modification. *

*/ boolean isAutoTableMod(); /** * Set this to false if you don't want eBean to automatically deduce the table * modification information and process it. *

* Set this to false if you don't want any cache invalidation or text index * management to occur. You may do this when say you update only one column * and you know that it is not important for cached objects or text indexes. *

*/ SqlUpdate setAutoTableMod(boolean isAutoTableMod); /** * Return the label that can be seen in the transaction logs. */ String getLabel(); /** * Set a descriptive text that can be put into the transaction log. *

* Useful when identifying the statement in the transaction log. *

*/ SqlUpdate setLabel(String label); /** * Return the sql statement. */ String getSql(); /** * Return the generated sql that has named parameters converted to positioned parameters. */ String getGeneratedSql(); /** * Return the timeout used to execute this statement. */ int getTimeout(); /** * Set the timeout in seconds. Zero implies no limit. *

* This will set the query timeout on the underlying PreparedStatement. If the * timeout expires a SQLException will be throw and wrapped in a * PersistenceException. *

*/ SqlUpdate setTimeout(int secs); /** * Set a parameter via its index position. */ SqlUpdate setParameter(int position, Object value); /** * Set a null parameter via its index position. Exactly the same as * {@link #setNull(int, int)}. */ SqlUpdate setNull(int position, int jdbcType); /** * Set a null valued parameter using its index position. */ SqlUpdate setNullParameter(int position, int jdbcType); /** * Set a named parameter value. */ SqlUpdate setParameter(String name, Object param); /** * Set a named parameter that has a null value. Exactly the same as * {@link #setNullParameter(String, int)}. */ SqlUpdate setNull(String name, int jdbcType); /** * Set a named parameter that has a null value. */ SqlUpdate setNullParameter(String name, int jdbcType); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy