Платформы корпоративных информационных систем

         

Вставка строки в mSQL с помощью объекта JDBC Statement



Пример 14-4. Вставка строки в mSQL с помощью объекта JDBC Statement

import Java, sql.*;
import Java, util.*;

public class Insert {

// Делаем вставку в таблицу, имеющую две колонки: test_id (int)

// и test_val (char(55))

// args[0] - это test_id, a args[1] - test_val

public static void main(String argv[]) {

Connection con = null;



ResourceBundle bundle = ResourceBundle.getBundle("SelectResource");

try {

String url = bundle.getString("URL");
Statement stmt;

Class.forName(bundle.getString("Driver"));

// здесь осуществляется соединение

con = DriverManager.getConnection(url, "borg", "");

stmt = con.createStatement();

stmt.executeUpdate("INSERT INTO test (test_id, test_val) " +

"VALUES(" + args[0] + ", '," + args[1] + ")");
}
catch( SQLException e )
{

e. printStackTrace();
}
finally
{

if( con != null )
{

try { con.close();
}
catch( Exception e ) { }

}
}
}
}

В реальном приложении мы бы, конечно, проверили, что пользователь ввел значение типа INT для test_id, что оно уникально, и что длина введенного значения test_val не превышает 55 символов. Тем не менее пример показывает, как просто осуществлять вставку данных. Метод createStatement() делает то, о чем говорит его название: создает пустую SQL-команду, связанную с рассматриваемым соединением - объектом Connection. Затем метод executeUpdate() передает заданную строку SQL базе данных для выполнения. Как подсказывает название, executeUp-date() ожидает команды SQL, которая некоторым образом модифицирует базу данных. Вы можете использовать ее, чтобы вставлять новые строки, как показано выше, либо удалять строки, обновлять строки, создавать новые таблицы или производить любые другие изменения в базе данных.

Запросы выполнять немного сложнее, чем обновления, поскольку они возвращают информацию из базы данных в виде объекта ResultSet. ResultSet является интерфейсом, представляющим 0 или более строк, являющихся результатом запроса, обращенного к базе данных. В классе JDBC Statement имеется метод executeQuery(), работающий подобно executeUpdate(), за исключением того, что он возвращает из базы данных ResultSet. Метод executeQuery() возвращает ровно один ResultSet, тем не менее имейте в виду, что JDBC поддерживает извлечение множественных результирующих наборов для тех баз данных, которые это позволяют. Ни MySQL, ни mSQL не поддерживают множественные результирующие наборы. Однако важно помнить о такой возможности, когда вы изучаете код для работы с иным ядром базы данных, написанный кем-то другим. В примере 14-5 показан простой запрос. На Рисунок 14-2 изображена модель данных з таблице test.



Содержание раздела