<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java H2 教程 原文:http://zetcode.com/java/h2database/ Java H2 教程展示了如何使用 Java 在 H2 中進行數據庫編程。 H2 是用 Java 編寫的關系數據庫管理系統。 它可以嵌入 Java 應用中或以客戶端-服務器模式運行。 也可以在存儲模式下使用。 H2 的占地面積很小。 它帶有一個稱為 H2 控制臺的基于瀏覽器的管理應用。 ## 下載 H2 從 H2 的主頁,我們以 ZIP 文件下載數據庫。 ```java $ unzip h2-2019-03-13.zip ``` 我們解壓縮檔案。 ```java $ mv h2 ~/bin/ ``` 我們將安裝目錄移動到我們選擇的目標位置。 ## Java H2 內存示例 在第一個示例中,我們連接到內存中的 H2 數據庫。 在此示例中,無需運行 H2 服務器。 `com/zetcode/JavaSeH2Memory.java` ```java package com.zetcode; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class JavaSeH2Memory { public static void main(String[] args) { var url = "jdbc:h2:mem:"; try (var con = DriverManager.getConnection(url); var stm = con.createStatement(); var rs = stm.executeQuery("SELECT 1+1")) { if (rs.next()) { System.out.println(rs.getInt(1)); } } catch (SQLException ex) { var lgr = Logger.getLogger(JavaSeH2Memory.class.getName()); lgr.log(Level.SEVERE, ex.getMessage(), ex); } } } ``` 該示例連接到 H2 內存數據庫并執行查詢。 創建僅用于一個連接的內存專用數據庫。 與數據庫的連接關閉時,數據庫關閉。 ```java var url = "jdbc:h2:mem:"; ``` 該 URL 用于內存模式下的 H2 數據庫。 ## 建立數據庫 在舊版本的 H2 中,如果數據庫不存在,則會自動創建一個數據庫。 由于安全原因,這不再可行。 在連接數據庫之前,我們需要創建一個數據庫。 ```java $ java -cp bin/h2-1.4.199.jar org.h2.tools.Shell Welcome to H2 Shell 1.4.199 (2019-03-13) Exit with Ctrl+C [Enter] jdbc:h2:mem:testdb URL jdbc:h2:~/tmp/h2dbs/testdb [Enter] org.h2.Driver Driver [Enter] sa User Password ``` 可以使用 shell 工具創建一個名為`testdb`的新數據庫。 ## 啟動 H2 服務器 現在我們將啟動 H2 服務器。 ```java $ java -jar bin/h2-1.4.199.jar -baseDir ~/tmp/h2dbs Web Console server running at http://127.0.1.1:8082 (only local connections) TCP server running at tcp://127.0.1.1:9092 (only local connections) PG server running at pg://127.0.1.1:5435 (only local connections) ``` 我們移至安裝目錄并在服務器模式下運行 H2。 該命令啟動 Web 控制臺應用和兩個本地連接。 PG 服務器是具有 PostgreSQL 協議的 PostgreSQL 兼容模式。 生成數據庫文件的目錄設置為`~/tmp/h2dbs`,其中`~`表示主目錄。 我們轉到 Web 控制臺,并使用`jdbc:h2:~/tmp/h2dbs/testdb` URL 連接到`testdb`數據庫。 該數據庫在`~/tmp/h2dbs`目錄中生成。 默認用戶為`sa`,未設置密碼。 ```java ALTER USER sa SET PASSWORD 's$cret' ``` 在控制臺中,我們使用`ALTER USER`語句為用戶`sa`設置密碼。 `cars_h2.sql` ```java CREATE TABLE cars(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), price INT); INSERT INTO cars(name, price) VALUES('Audi', 52642); INSERT INTO cars(name, price) VALUES('Mercedes', 57127); INSERT INTO cars(name, price) VALUES('Skoda', 9000); INSERT INTO cars(name, price) VALUES('Volvo', 29000); INSERT INTO cars(name, price) VALUES('Bentley', 350000); INSERT INTO cars(name, price) VALUES('Citroen', 21000); INSERT INTO cars(name, price) VALUES('Hummer', 41400); INSERT INTO cars(name, price) VALUES('Volkswagen', 21600); ``` 這是創建`cars`表的 SQL。 我們在一個示例中使用此表。 ## H2 Maven 依賴 ```java <dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.199</version> </dependency> </dependencies> ``` 這是 H2 的 Maven 依賴關系。 ## Java H2 服務器示例 對于此示例,我們使用以下命令啟動 H2 服務器: ```java $ java -jar bin/h2-1.4.199.jar -baseDir ~/tmp/h2dbs ``` `pom.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zetcode</groupId> <artifactId>javaseh2server</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.199</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <configuration> <mainClass>com.zetcode.JavaSeH2Server</mainClass> </configuration> </plugin> </plugins> </build> </project> ``` POM 文件包含 H2 數據庫引擎和用于使用 Maven 執行 Java 類的`exec-maven-plugin`。 `com/zetcode/JavaSeH2Server.java` ```java package com.zetcode; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class JavaSeH2Server { public static void main(String[] args) { var url = "jdbc:h2:tcp://localhost:9092/~/tmp/h2dbs/testdb"; var user = "sa"; var passwd = "s$cret"; var query = "SELECT * FROM cars"; try (var con = DriverManager.getConnection(url, user, passwd); var st = con.createStatement(); var rs = st.executeQuery(query)) { while (rs.next()) { System.out.printf("%d %s %d%n", rs.getInt(1), rs.getString(2), rs.getInt(3)); } } catch (SQLException ex) { var lgr = Logger.getLogger(JavaSeH2Server.class.getName()); lgr.log(Level.SEVERE, ex.getMessage(), ex); } } } ``` 該示例連接到 H2 服務器并執行查詢。 它返回`cars`表中的所有行。 ```java var url = "jdbc:h2:tcp://localhost:9092/~/tmp/h2dbs/testdb"; ``` 這是用于連接到 H2 服務器的`testdb`數據庫的 URL。 ```java $ mvn compile $ mvn -q exec:java 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 6 Citroen 21000 7 Hummer 41400 8 Volkswagen 21600 ``` 我們編譯并運行該程序。 Java H2 教程展示了如何用 Java 編程 H2 數據庫。 您可能也對 [Derby 教程](/db/apachederbytutorial), [MySQL Java 教程](/db/mysqljava/), [RESTEasy H2 教程](/jaxrs/resteasyh2/)和 [PostgreSQL Java 教程](/db/postgresqljavatutorial/)感興趣。 列出[所有 Java 教程](/all/#java)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看