JDBC API Usage: Difference between revisions
Jump to navigation
Jump to search
(→Query) |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
{{Internal|DataSource#Connection_Life_Cycle|JDBC Connection Life Cycle}} | {{Internal|DataSource#Connection_Life_Cycle|JDBC Connection Life Cycle}} | ||
=Database Metadata= | |||
The database metadata is an object that contains metadata about the database the current connection belongs to. | |||
<syntaxhighlight lang='java'> | |||
Connection c = ...; | |||
DatabaseMetaData dmd = c.getMetaData(); | |||
</syntaxhighlight> | |||
=ResultSet= | |||
Some implementation will fail on ResultSet.first() invocation, if the result sent is not explicitly created to be ResultSet.TYPE_SCROLL_INSENSITIVE. Creating scrollable ResultSets may have performance implications. ResultSet.next() is always safe to use, in an integrator pattern. | |||
=Query= | =Query= | ||
<syntaxhighlight lang='java'> | |||
... | |||
private DataSource dataSource; | |||
... | |||
Connection c; | |||
try { | |||
c = dataSource.getConnection(); | |||
PreparedStatement s = c.prepareStatement("SELECT * FROM SOME_TABLE"); | |||
ResultSet rs = s.executeQuery(); | |||
while(rs.next()) { | |||
// | |||
// columns are 1-based | |||
// | |||
String column1Value = rs.getString(1); | |||
Long column2Value = rs.getLong(2); | |||
... | |||
} | |||
} | |||
finally { | |||
c.close(); | |||
} | |||
</syntaxhighlight> | |||
<font color=darkgray>More low-level JDBC code example with comments in [[SIA]] page 57.</font> | |||
=Create= | =Create= |
Latest revision as of 20:03, 14 October 2018
Internal
JDBC Connection Life Cycle
Database Metadata
The database metadata is an object that contains metadata about the database the current connection belongs to.
Connection c = ...;
DatabaseMetaData dmd = c.getMetaData();
ResultSet
Some implementation will fail on ResultSet.first() invocation, if the result sent is not explicitly created to be ResultSet.TYPE_SCROLL_INSENSITIVE. Creating scrollable ResultSets may have performance implications. ResultSet.next() is always safe to use, in an integrator pattern.
Query
...
private DataSource dataSource;
...
Connection c;
try {
c = dataSource.getConnection();
PreparedStatement s = c.prepareStatement("SELECT * FROM SOME_TABLE");
ResultSet rs = s.executeQuery();
while(rs.next()) {
//
// columns are 1-based
//
String column1Value = rs.getString(1);
Long column2Value = rs.getLong(2);
...
}
}
finally {
c.close();
}
More low-level JDBC code example with comments in SIA page 57.