| div.main {margin-left: 20pt; margin-right: 20pt}Работа из Java с базами MS Access. Автор неизвестен. 
Используемое ПО: Windows 98, JDK1.2.1, MS Office(Access), текстовый редактор 
на вкус.
 -=1=- Создание БД -- Запускаем Access. У меня при запуске вываливается три 
радиобатона - Hовая база, Запуск мастера, Открыть Базу Данных. Выбираю "Hовая 
база". Выскакивает фрейм с вопросом где и с каким именем сохранить БД - 
указываю. Появляется еще фрейм, в котором в разделе "таблицы" указываю - 
"создать". Еще одно окно - выбираю "режим таблицы". Появляется табличка как в 
Excel(Quatro Pro и т.д.). Переименовать столбец можно щелкнув по нему правой 
кнопкой мыши и выбрав пункт "Переименовать столбец". Поля заполняются как в 
Excel,Quatro Pro, etc. После заполнения таблицы жму на ALT+F4 - появляется 
вопрос - сохранить таблицу? Соглашаюсь и подтверждаю название таблицы. Hа вопрос 
о ключевых полях отвечаю -нет-.
 -=2=- Теперь нужно прописать БД в винде. -- Захожу "пуск - настройка - панель 
управления - 32bit ODBC - System DSN - Add" Выбираю из списка "Micrososft Access 
Driver(*.mdb)" жму "готово". Появляется фрейм - в поле "Data Source Name" пишу 
имя БД(думаю можно любое - пусть профи меня поправят),то под каким 
сохранил(например, db1.mdb - сохраненная БД, значит пишу - db1). Hажав кнопку 
"SELECT" выбираю БД(в этом случае - db1.mdb) - жму ОК и в окне "System DSN" вижу 
"db1 Microsoft Access Driver(*.mdb)" -=3=- Создание файла для доступа к БД 
import java.sql.*;
class ListClasses
{
 public ListClasses() throws SQLException
 {
 String a,b,c;
        try{
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            }
 catch    (java.lang.ClassNotFoundException exc)
    {System.out.println("ClassNotFoundException");exc.printStackTrace();}
 Connection Ex1Con =
DriverManager.getConnection("jdbc:odbc:db1","login","password");
    /*в скобках указывается URL,login,password
    URL имеет вид
    jdbc:<субпротокол>:<имя,связанное с СУБД, или Протоколом>
    У БД в интернет/интранет "имя" может содержать сетевой URL
    //<имя хоста>:<порт>/..
    для моста JDBC-ODBC
    jdbc:odbc:
    где, db1 - имя БД, login - имя входящего, password - пароль
    последние два параметра я в своем примере опускал */
 Statement Ex1Stmt = Ex1Con.createStatement();
 ResultSet Ex1rs = Ex1Stmt.executeQuery("SELECT * FROM alex");
//выполняется SQL-запрос -- выбрать (SELECT) все столбцы(*) из(FROM) таблицы
//alex
 System.out.println("Class Location Schedule");
      while (Ex1rs.next()){
                a = Ex1rs.getString(1);
                b = Ex1rs.getString(2);
                c = Ex1rs.getString(3);
  System.out.println(a + " " + b + " " + c);
                          }
 }
//Здесь(выше) берется всего 3 столбца из таблицы
public static void main(String args[]) throws Exception
  {
 try{
 ListClasses l = new ListClasses();
    }
 catch (NoClassDefFoundError e)
 {
 System.out.println("Stop!");
 e.printStackTrace();
 }
  }
}
Это простейший пример доступа к БД, полезность его вижу в том, что 
он рабочий. Этот же пример был проверен с InterBase SQL-server version 
WI-V4.2.1.328 Подробно описывать каждую строку не вижу смысла - чтобы 
разобраьтся с JDBC нужно почитать литературу по JDBC&SQL(хотя бы основы 
запросов) и/или посмотреть исходники классов пакета java.sql.*. Далее советую 
посмотреть примеры из свинга -- у меня Swing1.1 - ExamplesDBDemos; 
ExamplesTableTableExample2,JDBCAdapter,TableSorter,TableMap. Мне очень помог 
класс JDBCAdapter. Я по своей неопытности столкнулся с тем, что вроде бы 
правильный пример не хотел запускаться, здесь я описал все шаги для запуска 
этого самого примера.
 |