|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--safejdbc.SQLExecuter
This is probably the most important class within the SafeJDBC framework, because this class provides methods to actually access the database.
Constructor Summary | |
SQLExecuter(ConnectionProvider conprovider)
To create an SQLExecuter instance a ConnectionProvider is needed. |
Method Summary | |
void |
executeTX(TXCodeBlock txCodeBlock)
Use this method, to execute several database calls in a single transaction. |
void |
query(java.lang.String prepSql,
FillingCommand cmd,
ResultSetProcessor rsProcessor)
Use this method to execute SQL-Query-Statements such as select from. |
void |
query(java.lang.String sqlStr,
ResultSetProcessor rsProcessor)
Use this method to execute SQL-Query-Statements such as select from. Example: sql.query("SELECT id, name FROM customer WHERE id > 0", new ResultSetIterator() { public void forEachRow(ResultSet rs) throws SQLException { System.out.println(rs.getString("name")); }}); |
int |
singleIntQuery(java.lang.String sqlStmt)
This method is a convenience method for executing a SQL query which has a single row with a single column containing a number as a result. |
int |
singleIntQuery(java.lang.String prepSqlStmt,
FillingCommand cmd)
This method is a convenience method for executing a SQL query which has a single row with a single column containing a number as a result. |
int |
update(java.lang.String sqlStr)
Use this method to execute modifying SQL-statements such as insert into or update. Example: sql.update("INSERT INTO customer (id, name) VALUES (1, 'John Smith')"); |
int |
update(java.lang.String prepSql,
FillingCommand cmd)
Use this method to execute modifying SQL-statements such as insert into or update, with a PreparedStatement. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public SQLExecuter(ConnectionProvider conprovider)
Method Detail |
public void executeTX(TXCodeBlock txCodeBlock) throws java.sql.SQLException
sqlexecuter.executeTX(new TXCodeBlock() { public void doTransaction (SQL sql) throws SQLException { sql.update ("INSERT INTO customer (id, name) VALUES (1, 'Arno Haase')"); sql.update ("INSERT INTO customer (id, name) VALUES (2, 'Jan Hermanns')"); }});Note that the SQL instance passed to doTransaction() can also be handed to methods outside the TXCodeBlock. This is extremly usefull to factor out code.
private void insertArno(SQL sql) throws SQLException { sql.update ("INSERT INTO customer (id, name) VALUES (1, 'Arno Haase')"); } private void insertJan(SQL sql) throws SQLException { sql.update ("INSERT INTO customer (id, name) VALUES (2, 'Jan Hermanns')"); } sqlexecuter.executeTX(new TXCodeBlock() { public void doTransaction (SQL sql) throws SQLException { insertArno(sql); insertJan(sql); }});
txCodeBlock
- contains a bunch of statements, to be
executed in a single transaction.public int update(java.lang.String sqlStr) throws java.sql.SQLException
SQL
sql.update("INSERT INTO customer (id, name) VALUES (1, 'John Smith')");
update
in interface SQL
safejdbc.SQL
sqlStr
- the statement to be executedpublic int update(java.lang.String prepSql, FillingCommand cmd) throws java.sql.SQLException
SQL
final int id = 1; final String name = "John Smith"; sql.update("INSERT INTO customer (id, name) VALUES (?, ?)", new FillingCommand() { public void fill(PreparedStatement s) throws SQLException { s.setInt(1, id); s.setString(2, name); }});
update
in interface SQL
safejdbc.SQL
sqlStr
- the prepared statement to be executedpublic void query(java.lang.String sqlStr, ResultSetProcessor rsProcessor) throws java.sql.SQLException
SQL
sql.query("SELECT id, name FROM customer WHERE id > 0", new ResultSetIterator() { public void forEachRow(ResultSet rs) throws SQLException { System.out.println(rs.getString("name")); }});
query
in interface SQL
safejdbc.SQL
sqlStr
- contains the SQL queryrsProcessor
- is used to process the ResultSet resulting
from the query. The ResultSet of this SQL-Query will be
handed to the ResultSetProcessor; if an iteration over all
rows of the result set is desired, use a ResultSetIterator
(like in the above example).public void query(java.lang.String prepSql, FillingCommand cmd, ResultSetProcessor rsProcessor) throws java.sql.SQLException
SQL
final int id_threshold = 3; sql.query("SELECT id, name FROM customer WHERE id > ?", new FillingCommand() { public void fill(PreparedStatement s) throws SQLException { s.setInt(1, id_threshold); }}, new ResultSetIterator() { public void forEachRow(ResultSet rs) throws SQLException { System.out.println(rs.getString("name")); }});
query
in interface SQL
safejdbc.SQL
prepSql
- contains the SQL query in the "PreparedStatement" formcmd
- is called to set the IN parameters of the prepared statementrsProcessor
- is used to process the ResultSet resulting from the query.
The ResultSet of this SQL-Query will be handed to the ResultSetProcessor; if
an iteration over all rows of the result set is desired, use a ResultSetIterator.public int singleIntQuery(java.lang.String sqlStmt) throws java.sql.SQLException
singleIntQuery
in interface SQL
public int singleIntQuery(java.lang.String prepSqlStmt, FillingCommand cmd) throws java.sql.SQLException
singleIntQuery
in interface SQL
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |