日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java DB嵌入式模式

發布時間:2023/12/3 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java DB嵌入式模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java DB是基于Java編程語言和SQL的關系數據庫管理系統。 這是Apache軟件基金會的開源Derby項目的Oracle版本。 Java SE 7 SDK中包含Java DB。

Java DB有兩個部署選項: EmbeddedNetwork Server

這篇文章是關于嵌入式部署或模式的。

1.嵌入式


在嵌入式模式下:

  • 該數據庫只能從一個應用程序訪問。
  • 應用程序和數據庫之間沒有網絡連接。
  • 應用程序和數據庫在同一JVM(Java虛擬機)中運行。

使用JDBC(Java數據庫連接)從Java應用程序訪問數據庫。 通常,數據庫由訪問數據庫的應用程序啟動和停止。 并且,不需要數據庫管理。

啟動Java DB

從應用程序啟動Java DB。 首先,加載數據庫JDBC驅動程序。 接下來,使用連接URL連接到數據庫。

  • 該驅動程序包含在Java DB中: org.apache.derby.jdbc.EmbeddedDriver
  • 連接URL格式為: jdbc:derby:databaseName; URLAttributes;
  • 一個示例連接URL是jdbc:derby:SampleDB; create = true; ,其中數據庫名稱為SampleDB ,“ create = true”為屬性名稱/值對。

以下是使用JDBC啟動數據庫的示例Java方法:

/** The method creates a Connection object. Loads the embedded driver,* starts and connects to the database using the connection URL.*/ public static Connection createDatabaseConnection()throws SQLException, ClassNotFoundException {String driver = "org.apache.derby.jdbc.EmbeddedDriver";Class.forName(driver);String url = "jdbc:derby:sampleDB";Connection c = DriverManager.getConnection(url);return c; }

通過上述方法創建的Connection對象用于使用SQL訪問數據庫對象和數據。 sampleDB是數據庫的名稱。

注意: derby.jar庫必須位于使用Java DB Embedded的應用程序的類路徑中。 該庫包含驅動程序。 它包含在Java DB中。

使用“ ij”以交互方式訪問Java DB數據庫

ij是Java DB附帶的命令行工具。 ij是一個JDBC工具,用于在Java DB數據庫上運行交互式查詢。 這位于Java DB安裝的\ bin目錄中。

啟動ij,創建數據庫并運行SQL命令以創建和訪問數據:

os prompt> ij ij> CONNECT 'jdbc:derby:testDB;create=true'; ij> Enter SQL commands here…

這將在當前目錄中創建一個名為testDB的數據庫并連接到該數據庫。 Java DB數據庫以與數據庫名稱相同的名稱存儲在目錄內的文件中。

2.用法示例

一個示例用法是使用嵌入式數據庫的基于Java Swing的桌面應用程序。 首次啟動應用程序時,將創建數據庫及其對象。 隨后,應用程序創建或訪問數據庫中的數據。 該應用程序還具有在線備份數據庫功能(即在數據庫打開時進行備份副本)和從備份數據庫副本功能進行還原 。 數據庫隨應用程序關閉。

3.從多個客戶端連接到嵌入式Java DB

可以從多個客戶端訪問嵌入式模式下的Java DB。 一個示例是部署在Web服務器上并連接到數據庫的Java Servlet應用程序。 Java DB數據庫在Web服務器上配置為DataSource類型的資源。 Servlet應用程序啟動數據庫并創建Connection對象。 Connection對象是使用DataSource對象而不是DriverManager創建的。 多個Web客戶端通過應用程序訪問數據庫數據。

一個例子

  • 在Web服務器上配置數據源資源
  • 從Servlet訪問數據庫(使用配置的數據源)

該配置適用于Apache Tomcat 6 Web服務器。 以下代碼示例使用Java Servlet(Java EE),JNDI(Java命名和目錄接口)和JDBC API。

3.1.1。 在Web服務器上配置數據源資源

這稱為上下文配置。 這將JDBC數據源的JNDI名稱定義為Web應用程序中使用的Java DB數據庫的資源(用于JNDI查找)。 另外,指定資源參數。

以下條目已添加到文件“ /META-INF/context.xml”中。 META-INF目錄將位于Web應用程序部署WAR文件的根目錄中。

<Context><Resourcename="jdbc/testDB"auth="Container"type="javax.sql.DataSource"username=""password=""driverClassName="org.apache.derby.jdbc.EmbeddedDriver"url="jdbc:derby:testDB"/> </Context>
  • name:是數據源資源的JNDI名稱。
  • url:指定格式為jdbc:derby:databaseName; URLAttributes;的JDBC數據庫連接URL 。 并且, testDB是要連接的Java DB數據庫的名稱。

請注意,應用程序從Derby系統目錄訪問嵌入式數據庫。 默認情況下,當前目錄(JVM系統屬性user.dir )是系統目錄。

對于Java DB,可以通過設置JVM系統屬性derby.system.home來指定Derby系統目錄(可選)。 在操作系統命令提示符下使用“ java”命令(例如, java -Dderby.system.home = D:\ mydatabases MyApplication )或在Java程序中(使用java.lang.System類的setProperty() )進行設置。 。

注意:嵌入式數據庫驅動程序(derby.jar)將放置在“ CATALINA_HOME \ lib”目錄中。 CATALINA_HOME是Tomcat安裝目錄。

3.1.2。 從Servlet訪問數據庫

以下Java代碼顯示了使用已配置的DataSource資源訪問Java DB數據庫的servlet類。 該代碼假定已經創建了數據庫(使用另一個應用程序或使用ij進行交互)。

public class TestServlet extends HttpServlet { private Connection conn; /** Method executes when the servlet is created.* Accesses the DataSource object and creates the Connection object.*/ @Override public void init()throws ServletException {InitialContext cxt = null;DataSource ds = null;try {cxt = new InitialContext();ds = (DataSource)cxt.lookup("java:/comp/env/jdbc/testDB");}catch (NamingException ex) {throw new ServletException("naming context error", ex);}try {conn = ds.getConnection();}catch (SQLException ex) {throw new ServletException("connection error", ex);} } // init() /** Method to handle a Http Get request.* The Connection object created in init() is used to access the* database data using JDBC API. */@Overridepublic void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {...Statement stmnt = conn.createStatement();ResultSet rs = stmnt.executeQuery("SELECT * FROM test_table");...} } // TestServlet

4.網絡服務器(又名服務器)

在這種模式下,可通過網絡(客戶端-服務器配置)從多個客戶端訪問Java DB。 數據庫和應用程序在不同的JVM中運行。 使用JDBC從Java應用程序訪問服務器上的數據庫。

以下是服務器使用情況的示例。

啟動服務器

使用提供的批處理程序(位于Java DB安裝的\ bin目錄中)從Windows命令提示符下啟動和停止服務器: startNetworkServer.bat和stopNetworkServer.bat 。

從客戶端應用程序訪問Java DB

加載驅動程序并使用連接URL連接到數據庫。

  • 驅動程序是: org.apache.derby.jdbc.ClientDriver
  • 連接URL格式為: jdbc:derby:// server:port / databaseName; URLAttributes;
  • server是主機名(或ip地址), port是服務器正在偵聽客戶端請求的端口號(默認為1527)。

以下是使用JDBC啟動數據庫的示例Java方法:

/** The method creates a Connection object. Loads the client driver,* starts and connects to the database using the connection URL.*/ public static Connection createDatabaseConnection()throws SQLException, ClassNotFoundException {String driver = "org.apache.derby.jdbc.ClientDriver";Class.forName(driver);String url = "jdbc:derby://localhost:1527/sampleDB";Connection c = DriverManager.getConnection(url);return c; }

通過上述方法創建的Connection對象用于使用SQL訪問數據庫對象和數據。 sampleDB是數據庫的名稱。

注意: derbyclient.jar庫必須位于客戶端應用程序的類路徑中,才能啟動和訪問Java DB數據庫。 該庫包含驅動程序。 它包含在Java DB中。

5.參考

  • Apache Derby>文檔(10.8手冊):http://db.apache.org/derby/manuals/index.html
  • Oracle的Java DB:http://www.oracle.com/technetwork/java/javadb/overview/index.html
  • 作者的Java DB備份和還原博客文章:http://www.javaquizplayer.com/blog.html
  • 作者開發和部署(并使用Java DB Embedded)基于Java Swing的桌面應用程序:http://www.scribonotes.com

翻譯自: https://www.javacodegeeks.com/2013/07/java-db-embedded-mode.html

總結

以上是生活随笔為你收集整理的Java DB嵌入式模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。