JDBC 4.0 — příjemné novinky
Připravovaná Java 6.0 sebou kromě jiného přinese i JDBC 4.0. Na co se tedy můžeme těšit?
JDBC 4.0 — příjemné novinky
Připravovaná Java 6.0 sebou kromě jiného přinese i JDBC 4.0. Na co se tedy můžeme těšit?
Automatické nahrávání JDBC driveru V předchozích verzích JDBC bylo nutné zavést třídu driveru manuálně pomocí volání Class.forName(). Od Javy 6.0 je podporováno automatické natažení driveru a to pomocí nadeklarování třídy driveru v Jar manifestu (META-INF/services/java.sql.Driver) daného dodavatele driveru.
Connection managementPodpora pro správu Statement a Connection objektů, pokud jsou sdílené. Podpora metadat, které umožňují získat informaci o stavu Connection.
RowIdBylo přidáno nové rozhraní RowId. ROWID jednoznačně identifikuje vrácený/modifikovaný záznam v DB, jedná se o systémovou věc databáze a proto ne všechny databáze jej podporují. RowId je možné získat při procházení ResultSet objektem a nebo nastavit při práci s objektem PreparedStatement
SQL dotazy jako anotace metodBude možné napsat SQL jako anotaci a využít nového parametrizovaného typu DataSet, který bude prezentovat vrácená data. DataSet (potomek java.util.List) je parametrizován JavaBeanou, která představuje vrácený řádek. Nejlépe vše ilustruje následující ukázka.
public class Osoba{
private id;
private jmeno;
private prijmeni;
//gettry a settry
}
public interface SQLDotazy extends BaseQuery {
@Select("select id, jmeno, prijmeni from osoba")
DataSet getOsoby();
}
Connection con = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
SQLDotazy dotazy = con.createQueryObject(SQLDotazy.class);
DataSet rows = dotazy.getOsoby();
for (Osoba osoba: rows) {
System.out.println("Jméno = " + osoba.getJmeno();
...
}
Vylepšený exception handlingJako potomci SQLException vznikly dvě nové třídy SQLTransientException a SQLNonTransientException a od nich odvozené hierarchie. SQLTransientException a její potomkové slouží pro výjimky, které mají přechodný charakter např. timeout. SQLNonTransientException slouží pro výjimky s nepřechodným charakterem např. kolize integrity dat nebo špatná syntaxe SQL. Navíc každá výjímka obsahuje metody getSQLState (vrací SQLstate podle specifikace SQL 2003), getNextException() (umožňuje získat zřetězenou výjimku) a implementuje rozhraní Iterable což umožňuje využití rozšířeného for příkazu.
Změny v APIByla přidána podpora pro BLOBy a CLOBy a datové typy NCHAR, NVARCHAR, LONGNVARCHAR, a NCLOB (rozšířené typy respektující National Character Set)
Všechny výše popsané novinky jsou detailněji popsány v článku Srini Penchikala JDBC 4.0 Enhancements in Java SE 6. Pokud si novinky chcete vyzkoušet, budete potřebovat Javvu 6.0. Součástí SDK 6.0 by měla být i databáze Apache Derby, jejíchž driver zároveň slouží jako referenční implementace JDBC 4.0.
메타데이터
- post_id
- 68bbf6ac23a2
- slug
- jdbc-4-0-příjemné-novinky-68bbf6ac23a2
- url
- https://medium.com/dagblog/jdbc-4-0-p%C5%99%C3%ADjemn%C3%A9-novinky-68bbf6ac23a2
- canonical_url
- https://medium.com/dagblog/jdbc-4-0-p%C5%99%C3%ADjemn%C3%A9-novinky-68bbf6ac23a2
- author_url
- https://medium.com/@dagi
- status
- ok
- fetched_at
- 2026-07-30 22:11:07