H2 — это база данных JAVA. Мы можем взаимодействовать с этой базой данных, используя JDBC. В этой главе мы увидим, как создать соединение JDBC с базой данных H2 и операции CRUD с базой данных H2.
Как правило, существует пять шагов для создания соединения JDBC.
Шаг 1 — Регистрация драйвера базы данных JDBC.
Class.forName ("org.h2.Driver");
Шаг 2 — Открытие соединения.
Connection conn = DriverManager.getConnection ("jdbc:h2:~/test", "sa","");
Шаг 3 — Создание заявления.
Statement st = conn.createStatement();
Шаг 4 — Выполнение оператора и получение Resultset.
Stmt.executeUpdate("sql statement");
Шаг 5 — Закрытие соединения.
conn.close();
Прежде чем перейти к созданию полной программы, нам нужно добавить файл h2-1.4.192.jar в CLASSPATH. Мы можем получить этот файл из папки C: \ Program Files (x86) \ H2 \ bin .
Создать таблицу
В этом примере мы напишем программу для создания таблицы. Рассмотрим таблицу с именем Registration, имеющую следующие поля.
S.No | Название столбца | Тип данных | НЕНУЛЕВОЙ | Основной ключ |
---|---|---|---|---|
1 | Я БЫ | Число | да | да |
2 | Первый | VARCHAR (255) | нет | нет |
3 | Прошлой | VARCHAR (255) | нет | нет |
4 | Возраст | Число | нет | нет |
Ниже приведен пример программы с именем H2jdbcCreateDemo .
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class H2jdbcCreateDemo { // JDBC driver name and database URL static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; // Database credentials static final String USER = "sa"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // STEP 1: Register JDBC driver Class.forName(JDBC_DRIVER); //STEP 2: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //STEP 3: Execute a query System.out.println("Creating table in given database..."); stmt = conn.createStatement(); String sql = "CREATE TABLE REGISTRATION " + "(id INTEGER not NULL, " + " first VARCHAR(255), " + " last VARCHAR(255), " + " age INTEGER, " + " PRIMARY KEY ( id ))"; stmt.executeUpdate(sql); System.out.println("Created table in given database..."); // STEP 4: Clean-up environment stmt.close(); conn.close(); } catch(SQLException se) { //Handle errors for JDBC se.printStackTrace(); } catch(Exception e) { //Handle errors for Class.forName e.printStackTrace(); } finally { //finally block used to close resources try{ if(stmt!=null) stmt.close(); } catch(SQLException se2) { } // nothing we can do try { if(conn!=null) conn.close(); } catch(SQLException se){ se.printStackTrace(); } //end finally try } //end try System.out.println("Goodbye!"); } }
Сохраните вышеуказанную программу в H2jdbcCreateDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.
\>javac H2jdbcCreateDemo.java \>java H2jdbcCreateDemo
Приведенная выше команда производит следующий вывод.
Connecting to database... Creating table in given database... Created table in given database... Goodbye!
После этого выполнения мы можем проверить таблицу, созданную с использованием интерфейса H2 SQL.
Вставить записи
В этом примере мы напишем программу для вставки записей. Вставим следующие записи в таблицу Регистрация.
Я БЫ | Первый | Прошлой | Возраст |
---|---|---|---|
100 | Zara | Али | 18 |
101 | Mahnaz | Фатма | 25 |
102 | Зайд | хан | 30 |
103 | Sumit | Mital | 28 |
Ниже приведен пример программы с именем H2jdbcInsertDemo .
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class H2jdbcInsertDemo { // JDBC driver name and database URL static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; // Database credentials static final String USER = "sa"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // STEP 1: Register JDBC driver Class.forName(JDBC_DRIVER); // STEP 2: Open a connection System.out.println("Connecting to a selected database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); System.out.println("Connected database successfully..."); // STEP 3: Execute a query stmt = conn.createStatement(); String sql = "INSERT INTO Registration " + "VALUES (100, 'Zara', 'Ali', 18)"; stmt.executeUpdate(sql); sql = "INSERT INTO Registration " + "VALUES (101, 'Mahnaz', 'Fatma', 25)"; stmt.executeUpdate(sql); sql = "INSERT INTO Registration " + "VALUES (102, 'Zaid', 'Khan', 30)"; stmt.executeUpdate(sql); sql = "INSERT INTO Registration " + "VALUES(103, 'Sumit', 'Mittal', 28)"; stmt.executeUpdate(sql); System.out.println("Inserted records into the table..."); // STEP 4: Clean-up environment stmt.close(); conn.close(); } catch(SQLException se) { // Handle errors for JDBC se.printStackTrace(); } catch(Exception e) { // Handle errors for Class.forName e.printStackTrace(); } finally { // finally block used to close resources try { if(stmt!=null) stmt.close(); } catch(SQLException se2) { } // nothing we can do try { if(conn!=null) conn.close(); } catch(SQLException se) { se.printStackTrace(); } // end finally try } // end try System.out.println("Goodbye!"); } }
Сохраните вышеуказанную программу в H2jdbcInsertDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.
\>javac H2jdbcInsertDemo.java \>java H2jdbcInsertDemo
Приведенная выше команда производит следующий вывод.
Connecting to a selected database... Connected database successfully... Inserted records into the table... Goodbye!
Читать запись
В этом примере мы напишем программу для чтения записей. Попробуем прочитать все записи из таблицы регистрации .
Ниже приведен пример программы с именем H2jdbcRecordDemo .
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class H2jdbcReadDemo { // JDBC driver name and database URL static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; // Database credentials static final String USER = "sa"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // STEP 1: Register JDBC driver Class.forName(JDBC_DRIVER); // STEP 2: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // STEP 3: Execute a query System.out.println("Connected database successfully..."); stmt = conn.createStatement(); String sql = "SELECT id, first, last, age FROM Registration"; ResultSet rs = stmt.executeQuery(sql); // STEP 4: Extract data from result set while(rs.next()) { // Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); // Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } // STEP 5: Clean-up environment rs.close(); } catch(SQLException se) { // Handle errors for JDBC se.printStackTrace(); } catch(Exception e) { // Handle errors for Class.forName e.printStackTrace(); } finally { // finally block used to close resources try { if(stmt!=null) stmt.close(); } catch(SQLException se2) { } // nothing we can do try { if(conn!=null) conn.close(); } catch(SQLException se) { se.printStackTrace(); } // end finally try } // end try System.out.println("Goodbye!"); } }
Сохраните вышеуказанную программу в H2jdbcReadDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.
\>javac H2jdbcReadDemo.java \>java H2jdbcReadDemo
Приведенная выше команда производит следующий вывод.
Connecting to a selected database... Connected database successfully... ID: 100, Age: 18, First: Zara, Last: Ali ID: 101, Age: 25, First: Mahnaz, Last: Fatma ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal Goodbye!
Обновить записи
В этом примере мы напишем программу для обновления записей. Попробуем прочитать все записи из таблицы регистрации .
Ниже приведен пример программы с именем H2jdbcUpdateDemo .
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class H2jdbcUpdateDemo { // JDBC driver name and database URL static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; // Database credentials static final String USER = "sa"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // STEP 1: Register JDBC driver Class.forName(JDBC_DRIVER); // STEP 2: Open a connection System.out.println("Connecting to a database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // STEP 3: Execute a query System.out.println("Connected database successfully..."); stmt = conn.createStatement(); String sql = "UPDATE Registration " + "SET age = 30 WHERE id in (100, 101)"; stmt.executeUpdate(sql); // Now you can extract all the records // to see the updated records sql = "SELECT id, first, last, age FROM Registration"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ // Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); // Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } rs.close(); } catch(SQLException se) { // Handle errors for JDBC se.printStackTrace(); } catch(Exception e) { // Handle errors for Class.forName e.printStackTrace(); } finally { // finally block used to close resources try { if(stmt!=null) stmt.close(); } catch(SQLException se2) { } // nothing we can do try { if(conn!=null) conn.close(); } catch(SQLException se) { se.printStackTrace(); } // end finally try } // end try System.out.println("Goodbye!"); } }
Сохраните вышеуказанную программу в H2jdbcUpdateDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.
\>javac H2jdbcUpdateDemo.java \>java H2jdbcUpdateDemo
Приведенная выше команда производит следующий вывод.
Connecting to a selected database... Connected database successfully... ID: 100, Age: 30, First: Zara, Last: Ali ID: 101, Age: 30, First: Mahnaz, Last: Fatma ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal Goodbye!
Удалить записи
В этом примере мы напишем программу для удаления записей. Попробуем прочитать все записи из таблицы регистрации .
Ниже приведен пример программы с именем H2jdbcDeleteDemo .
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class H2jdbcDeleteDemo { // JDBC driver name and database URL static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; // Database credentials static final String USER = "sa"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // STEP 1: Register JDBC driver Class.forName(JDBC_DRIVER); // STEP 2: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // STEP 3: Execute a query System.out.println("Creating table in given database..."); stmt = conn.createStatement(); String sql = "DELETE FROM Registration " + "WHERE id = 101"; stmt.executeUpdate(sql); // Now you can extract all the records // to see the remaining records sql = "SELECT id, first, last, age FROM Registration"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ // Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); // Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } rs.close(); } catch(SQLException se) { // Handle errors for JDBC se.printStackTrace(); } catch(Exception e) { // Handle errors for Class.forName e.printStackTrace(); } finally { // finally block used to close resources try { if(stmt!=null) stmt.close(); } catch(SQLException se2) { } // nothing we can do try { if(conn!=null) conn.close(); } catch(SQLException se) { se.printStackTrace(); } // end finally try } // end try System.out.println("Goodbye!"); } }
Сохраните вышеуказанную программу в H2jdbcDeleteDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.
\>javac H2jdbcDeleteDemo.java \>java H2jdbcDeleteDemo
Приведенная выше команда производит следующий вывод.