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是用于在Java DB数据库上运行交互式查询的JDBC工具。 这位于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.batstopNetworkServer.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

java嵌入式db_Java DB嵌入式模式相关推荐

  1. java dbrecord_JFinal 独创 Db + Record 模式

    Db 类及其配套的 Record 类,提供了在 Model 类之外更为丰富的数据库操作功能.使用 Db 与 Record 类时,无需对数据库表进行映射,Record 相当于一个通用的 Model.以下 ...

  2. Neo4j的两种方式访问(嵌入式访问、服务器模式访问)-- java客户端连接和SpringBoot整合Neo4j

    一.Neo4j数据库访问 1.Neo4j数据库访问 嵌入式数据库 服务器模式(通过REST的访问) 它是由应用程序的性质(neo4j是独立服务器 还是和程序在一起),性能,监控和数据安全性来决定架构选 ...

  3. Java 生态圈中的嵌入式数据库,哪家强?

    每天早上七点三十,准时推送干货 嵌入式数据库一个很陌生的词汇,以前只是听说,但是没有真正使用过,今天阿粉和大家一起来揭开它的面纱. 一.介绍 初次接触嵌入式数据库(Embedded Database) ...

  4. java比嵌入式好_嵌入式和JAVA学哪个比较好

    嵌入式和JAVA学哪个比较好 首先要了解嵌入式和java,先说嵌入式,嵌入式就是一种IT技术,他就是把程序编辑好,嵌入到相应的产品中,随着物联网的发展,嵌入式已经作为很多产品的关键部分,我们身边也到处 ...

  5. 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705 参考博客 : [嵌入式开发]嵌入式 开发环境 (远程 ...

  6. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之按键驱动框架

    文章目录 前言 1.APP怎么读取按键值 1.1.查询方式 1.2.休眠-唤醒方式 1.3.poll方式 1.3.异步通知方式 1.5. 驱动程序提供能力,不提供策略 2.按键驱动程序框架--查询方式 ...

  7. 什么是嵌入式设备?/ 嵌入式设备的定义

    什么是嵌入式设备?/ 嵌入式设备的定义 区别于通用计算机的其他设备都可以称之为嵌入式设备 (个人电脑,服务器) 一段时期内,必备的硬件配置. 嵌入式开发包括哪些部分: 底层驱动开发: 关键字:BSP/ ...

  8. 嵌入式计算机应用方面,嵌入式实时软件在计算机中的应用研究

    王琳琳 摘要:随着时代的前进,网络信息技术得以在我国广泛应用,众多技术人员基于计算機网络理论研究基础大力推进计算机更新升级工作.本文分析了嵌入式实时软件的含义与特点,并从应用原则.应用特点.应用内容以 ...

  9. 如何区分嵌入式系统和嵌入式操作系统

    一 什么是嵌入式系统  嵌入式系统一般指非pc系统,有计算机功能但又不称之为计算机的设备或器材.它是以应用为中 心,软硬件可裁减的,适应应用系统对功能.可靠性.成本.体积.功耗等综合性严格要求的专用计 ...

最新文章

  1. golang中的strings.SplitAfter
  2. Flink批处理优化器之数据属性
  3. 生成word_Word生成员工信息表,每一页生成独立文件,还能自动命名
  4. 使用计算机时 开关机顺序会,电脑如何正确开关机
  5. 稿定设计怎么免费去水印
  6. Docker封装Java环境镜像(Alpine+OpenJDK)
  7. Python:如何安装whl文件
  8. 业务层应该返回DataSet/DataTable,还是对象/对象集合?
  9. 多线激光雷达遇到的问题
  10. Python使用matplotlib可视化环形图
  11. 美国联邦政府2020财年网络安全预算分析:174亿美元如何分配?
  12. 小学计算机课的微案例,小学信息技术教学案例分析
  13. java版的mrp模拟器,mrp模拟器
  14. 【设计模式】简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  15. 网站seo优化到底该怎么做?
  16. firefox html5 pop,数组的push、unshift、pop、shift方法实现
  17. TDM和STDM复用
  18. 2026 年全球开源数目将超 3 亿!中国开源爆发进行时,关于中国开源生态的答案都在这里了
  19. Oracle的授权方式
  20. cmd命令行切换目录

热门文章

  1. 关于Java类加载双亲委派机制的思考(附面试题)
  2. 介绍Java中的内存泄漏
  3. 并发编程 – Concurrent 用户指南
  4. 架构师必须掌握的各种编码:ASCII、ISO-8859-1、GB2312
  5. Shell入门(三)之字符串
  6. java实现九九乘法表的输出
  7. 3-1 Apache Shiro权限管理框架介绍
  8. tomcat(14)服务器组件和服务组件
  9. MySQL日志:binlog、事务日志(redo、undo)
  10. js内存泄露 垃圾回收_Java内存体系结构(模型),垃圾回收和内存泄漏