Creating Statements
A Statement object is required to send SQL statements to the Database Management System (DBMS). A Statement object is created using createStatement()
at the com.sun.star.sdbc.XConnection interface of the connection. It returns a com.sun.star.sdbc.Statement service. This Statement
is generic, that is, it does not contain any SQL command. It can be used for all kinds of SQL commands. Its main interface is com.sun.star.sdbc.XStatement:
com::sun::star::sdbc::XResultSet executeQuery( [in] string sql)
long executeUpdate( [in] string sql)
boolean execute( [in] string sql)
com::sun::star::sdbc::XConnection getConnection()
Once a Statement
is obtained, choose the appropriate execution method for the SQL command. For a SELECT
statement, use the method executeQuery()
. For UPDATE
, DELETE
and INSERT
statements, the proper method is executeUpdate()
. To have multiple result sets returned, use execute()
together with the interface com.sun.star.sdbc.XMultipleResults of the statement.
![]() |
Data definition commands, such as CREATE, DROP, ALTER, and GRANT, can be issued with executeUpdate(). |
Consider how an XConnection
is used to create an XStatement
in the following example:
public static void executeSelect(XMultiServiceFactory _rMSF) throws com.sun.star.uno.Exception {
// retrieve the DatabaseContext and get its com.sun.star.container.XNameAccess interface
XNameAccess xNameAccess = (XNameAccess)UnoRuntime.queryInterface(
XNameAccess.class, _rMSF.createInstance("com.sun.star.sdb.DatabaseContext"));
// connect
Object dataSource = xNameAccess.getByName("Ada01");
XDataSource xDataSource = (XDataSource)UnoRuntime.queryInterface(XDataSource.class, dataSource);
Object interactionHandler = _rMSF.createInstance("com.sun.star.sdb.InteractionHandler");
XInteractionHandler xInteractionHandler = (XInteractionHandler)UnoRuntime.queryInterface(
XInteractionHandler.class, interactionHandler);
XCompletedConnection xCompletedConnection = (XCompletedConnection)UnoRuntime.queryInterface(
XCompletedConnection.class, dataSource);
XConnection xConnection = xCompletedConnection.connectWithCompletion(xInteractionHandler);
// the connection creates a statement
XStatement xStatement = xConnection.createStatement();
// The XStatement interface is used to execute a SELECT command
// Double quotes for identifiers in the SELECT string must be escaped in Java
XResultSet xResult = xStatement.executeQuery("Select * from \"Table1\"");
// process the result ...
XRow xRow = (XRow)UnoRuntime.queryInterface(XRow.class, xResult);
while (xResult != null && xResult.next()) {
System.out.println(xRow.getString(1));
}
}
The remainder of this section discusses how to enter data into a table and retrieving the data later, using INSERT
and SELECT
commands with a com.sun.star.sdbc.Statement.
Content on this page is licensed under the Public Documentation License (PDL). |