Connection
: repräsentiert eine DB-VerbindungStatement
: führt SQL Anweisungen über die Datenbankverbindung ausResultSet
: Methoden, um auf das Ergebnis der SQL-Abfrage
zuzugreifenJDBC Typ | Java Typ | Java Object-Typ |
---|---|---|
TINYINT | byte | java.lang.Byte |
SMALLINT | short | java.lang.Short |
INTEGER | int | java.lang.Integer |
BIGINT | long | java.lang.Long |
REAL | double | java.lang.Double |
FLOAT | double | java.lang.Double |
DOUBLE | double | java.lang.Double |
DECIMAL | java.math.BigDecimal | java.math.BigDecimal |
NUMERIC | java.math.BigDecimal | java.math.BigDecimal |
DATE | java.sql.Date | java.sql.Date |
TIME | java.sql.Time | java.sql.Time |
TIMESTAMP | java.sql.Timestamp | java.sql.Timestamp |
CHAR | java.lang.String | java.lang.String |
VARCHAR | java.lang.String | java.lang.String |
LONGVARCHAR | java.lang.String | java.lang.String |
BIT | boolean | java.lang.Boolean |
BINARY | byte[] | byte[] |
VARBINARY | byte[] | byte[] |
LONGVARBINARY | byte[] | byte[] |
Connection con = DriverManager.getConnection(url, user, pwd);
Connection
-Objekt conDatabaseMetaData getMetaData() throws SQLException
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT * FROM CUSTOMER“);
stmt.executeUpdate("INSERT INTO CUSTOMER VALUES (...)")
resultSet.next()
zeilenweise durchlaufen.first()
.last()
ResultSet rs = stmt.executeQuery( "SELECT * FROM CUSTOMER" );
while (rs.next()){
System.out.printf( "%s, %s %s, %s %s \n", rs.getString(1), rs.getString(2),
rs.getString(3), rs.getString(4), rs.getString(5));
}
.close()
geschlossen werden
AutoClosable
implementieren und die Management-Klasse in einem TryWithResources öffnenconnection.getAutoCommit()
gespeichert werden und nach erledigter Arbeit wieder auf den ursprünglichen Wert gesetzt werdenconnection.setAutoCommit(false)
ausgeführt werdenString spoiledData = "1; DROP TABLE users;"
String query = "SELECT * FROM users where id="+spoiledData;
SELECT * FROM users where id=1; DROP TABLE users;
und löscht somit die Tabelle usersPreparedStatement preparedStatement = connection.preparedStatement("Insert into CUSTOMER VALUES (?,?,?)")
void setByte (int idx, byte x)
void setShort (int idx, short x)
void setInt (...)
null
setNull(int idx, int sqlType)
clearParameters()
gelöscht werdenResultSet executeQuery() throws SQLException
int executeUpdate() throws SQLException
.addBatch()
auf einem „Stapel“ für eine spätere Abarbeitung geparkt werden// idx ... Index des Platzhalters im SQL-String
// x ... InputStream (Lesen vom Datenträger: FileInputStream)
// length ... Größe der Datei in Byte
void setBinaryStream (int idx, InputStream x, int length) throws SQLException
InputStream getBinaryStream (int columnIndex) throws SQLException
InputStream getBinaryStream (String columnName) throws SQLException