|
предоставляющий данные о соединении.
Пример 14-2. Файл SelectResource.properties с подробностями соединения
Driver=com.imaginary.sql.msql.MsqlDriver
URL=jdbc:msql://athens.imaginary.com:1114/db_test
В примере 14-3 показан переносимый класс Connection.
Пример 14-3. Специфические данные
import java.sql.*; import java.util.*;
public class Connect {
public static void main(String argv[]) {
Connection con = null;
ResourceBundle bundle = ResourceBundle.getBundle("SelectResource");
try {
String url = bundle.getString("URL");
Statement stmt; ResultSet rs;
Class.forName(bundle.getString("Driver")); // здесь осуществляется соединение
con = DriverManager.getConnection(url, "borg", ""); }
catch( SQLException e ) { e. printStackTrace();
}
finally
{
if( con != null )
{
try { con.close(); }
catch( Exception e ) { }
}
}
}
}
В этом примере установления соединения мы избавились от кода, специфичного для
mSQL. Однако для разработчиков переносимых JDBC-приложений остается одна важная
проблема, особенно касающаяся тех, кто работает с mSQL. JDBC требует, чтобы все
драйверы поддерживали начальный уровень (entry level) SQL2. Это стандарт ANSI
минимальной поддержки SQL. Если при вызовах JDBC вы поддерживаете начальный
уровень SQL2, то ваше приложение будет стопроцентно переносимо на другие базы
данных. MySQL поддерживает минимальный уровень SQL2, a mSQL - увы, нет.
Приложения, написанные для mSQL, скорее всего, без проблем будут переноситься
на другие базы данных, но приложения, написанные с использованием начального
уровня SQL92, в полном объеме нельзя будет безболезненно перенести обратно на
mSQL.
Простой доступ к базе данных
В примере Connect делалось не много. В нем было просто показано, как
соединиться с базой данных. В соединении с базой данных нет пользы, пока вы не
начинаете действительно обмениваться с ней данными. Простейшие виды доступа к
базе данных - команды SELECT, INSERT, UPDATE и DELETE. В JDBC API вы
используете экземпляр Connection для создания экземпляров класса Statement.
Класс Statement представляет SQL-команду любого типа. В примере 14-4 показано,
как вставить строку в базу данных, используя 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 ) { }
}
}
|
|