class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

JDBC

загрузка драйвера
соединение с БД
выполнение запросов
параметризованные запросы

ODBC

ODBC
ODBC для wxWidgets
JDBC - ODBC мост

ADO

ADO

VCL

VCL компоненты

PHP

PHP

DBI (perl)

dbi пример

Hibernate

Hibernate

Справка по JDBC

Выполнение запросов через jdbc

Если соединение установлено, то можно посылать различные SQL команды к СУБД. В первую очередь рассмотрим выбор данных. Для этого необходимо создать объект типа Statement, а затем с его помощью выполнить выборку. Результат выборки сохраняется в объекте типа ResultSet. Ниже приведен список основных методов:

Дополнительную информацию о выборке, как количество столбцов, имена столбцов и их синонимы можно через интерфейс ResultSetMetaData:


import java.sql.*;
...
Connection conn;
Statement sql;
ResultSet rset;  
ResultSetMetaData md;
int cnt=0;
    
try {
   // соединение
   conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/test?" +
            "user=root&password=root1");

   // создание объекта SQL запроса
   sql = conn.createStatement();
   
   // выполняем запрос
   rset = sql.executeQuery
             ("select * from tblname;");

   // дополнительная информации о выборке
   md = rset.getMetaData();
   // число столбцов в выборке
   cnt = md.getColumnCount();
    
   // вывод синонимов
   for(int i=1; i <= cnt; i++)
        System.out.print(md.getColumnLabel(i)+"|");
   System.out.println();
    
   // вывод значений полей в виде строк
   while (rset.next()) {
       for(int i=1; i<=cnt; i++)
           System.out.print(rset.getString(i)+"|");
       System.out.println();
    }
    
    // закрываем соединение    
    conn.close();
    }
    catch (Exception e) {     
        sql=null;        
        System.out.println("Some error");
        e.printStackTrace();
    }

Начиная с JDBC 2.0, можно определить выборку доступную для вставки, удаления и изменения записей. Это упрощает разработку пользовательского интерфейса для работы с таблицами.


sql = conn.createStatement(
        ResultSet.TYPE_SCROLL_SENSITIVE, 
        ResultSet.CONCUR_UPDATABLE);

// пусть второй столбец таблицы tblname
// содержит строковые данные
rset = sql.executeQuery(
            "select * from tblname;");
if(rset.getConcurrency()==
   ResultSet.CONCUR_UPDATABLE){

     // обновляем первую запись
     rset.first();
     rset.updateString(2, "upd str");
     rset.updateRow();        
    
     // добавляем новую запись
     rset.moveToInsertRow();
     rset.updateString(2, "ins str");
     rset.insertRow();
    }

Выполнение запросов, не возвращающих результат (включая вставку, удаление и изменение записей) осуществляется методом executeUpdate.


sql.executeUpdate(
      "CREATE TABLE tblname1(id integer," + 
      " str varchar(45));");

Если команд несколько, то их объединяют в список, который затем разово выполняют.


sql.addBatch("DROP TABLE IF EXISTS tblname1; ");
sql.addBatch("CREATE TABLE tblname1(id integer, " + 
             " str varchar(45));");
sql.executeBatch();

Рейтинг@Mail.ru