Kann mir jemand sagen welche Datenbank und welcher JDBC-Treiber das Blättern (mit Blättern meine ich: Cursor rauf, runter oder, eine bzw. mehrere beliebige/n Zeile/n anzeigt) unterstützt? :roll:
märliprinz hat gesagt.:Kann mir jemand sagen welche Datenbank und welcher JDBC-Treiber das Blättern (mit Blättern meine ich: Cursor rauf, runter oder, eine bzw. mehrere beliebige/n Zeile/n anzeigt) unterstützt? :roll:
märliprinz hat gesagt.:Im Programm blättern oder in der Datenbank?
import java.sql.*;
public class ConnectionTest {
public static void main(String[] args) {
//Verbindungsaufbau Einträge die benötigt werden,
//um mit einer Datenbank zu verbinden.
final String hostname = "localhost";
final String port = "8086";
final String dbname = "cursor_test";
final String user = "root";
final String password = "";
Connection conn = null;
//Hier wird der Treiber geladen.
try {
System.out.println("Treiber laden");
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
}
//Wenn der Treiber nicht geladen werden konnte,
//wird eine Exception ausgegeben.
catch (Exception e) {
System.err.println("Treiber laden fehlgeschlagen!");
e.printStackTrace();
}
//Hier wird mit der Datenbank connectet.
try {
System.out.println("Verbindung aufbauen");
String url = "jdbc:mysql://"+hostname+":"+port+"/"+dbname;
conn = DriverManager.getConnection(url, user, password);
//Variabeln die benötigt werden um die RAM benutzung so wie auch die Zeit zu messen.
long startTime = System.currentTimeMillis();
long memFreeVorher = Runtime.getRuntime().freeMemory();
long memFreeMax = Runtime.getRuntime().maxMemory();
long memFreeTotal = Runtime.getRuntime().totalMemory();
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("SELECT * FROM tbl_person");
/*srs.first();
while (srs.next()) {
String name = srs.getString("name");
System.out.println("name = "+name);
}*/
// int[] rows = {""};
// for(int i=0;i<rows.length;i++){
for(int i=1;i<=1000000;i++){
if(srs.absolute(i)){
String name = srs.getString("name");
String vorname = srs.getString("vorname");
String adresse = srs.getString("adresse");
System.out.println("Datensatz " +i +": " +name +" " +vorname +" " +adresse);
}else{
System.out.println("Datensatz nicht vorhanden!");
}
}
srs.close();
stmt.close();
long memFreeNachher = Runtime.getRuntime().freeMemory();
long endTime = System.currentTimeMillis();
System.out.println("habe " + (endTime-startTime) + "[ms] Zeit verbraucht");
System.out.println("------------------------------------------");
System.out.println("Freier Speicher vorher " + (memFreeMax/1024/1024) + ", freier Speicher nachher " + (memFreeNachher/1024/1024));
System.out.println(memFreeMax/1024/1024);
System.out.println(memFreeTotal/1024/1024);
/* System.out.println("Statement beginnen");
Statement stmt = conn.createStatement();
System.out.println("Abfrage beginnen");
String sqlCommand = "SELECT * FROM tbl_person ORDER BY name ASC";
//"SELECT * FROM tbl_person WHERE id<=5 ORDER BY name ASC";
ResultSet rs = stmt.executeQuery(sqlCommand);
System.out.println("* Ergebnisse anzeigen");
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString("name");
String vorname = rs.getString(3);
System.out.println( id+" "+name+" "+vorname );
}
System.out.println("* Statement beenden");
stmt.close();
*/
//Hier wird die Verbindung zur DB beendet.
System.out.println("Verbindung beenden");
conn.close();
}
//Hier werden falls etwas schief geht die Fehlermeldungen ausgegeben.
catch (SQLException sqle) {
System.out.println("SQLException: " + sqle.getMessage());
System.out.println("SQLState: " + sqle.getSQLState());
System.out.println("VendorError: " + sqle.getErrorCode());
sqle.printStackTrace();
}
}
}