Java学习中的数据库和数据库开发工具

article/2025/9/30 2:21:59

一、数据库
1、数据库,通常是一个戒一组文件,保存了一些符合特定规格的数据,数据库对应的英询单词是DataBase,简称DB;数据库软件称为数据库管理系统,英文简称DBMS,全称为DataBase Management System,例如:Oracle、MySQL、SQL Server、Sybase、informix、DB2等等。

2、无论你开发的是一款PC端的Web应用,还是一款移动端的app,都需要一个数据库来存储你的业务数据(包括电商的商品信息、游戏的道具信息、社交的人员信息等等)。可以说,数据库是后端系统最重要的存储组件。作为一名Java程序开发人员,你会发现你所完成的大部分代码逻辑最终都是在不断的与数据库进行交互。

二、MySQL数据库
1、MySQL是一个关系型的小型数据库管理系统。
在 WEB 应用方面是最好的关系数据库管理系统应用软件之一。市场占有率有20%左右。
它的优点有如下几方面:
(1)开源软件。
使用 C语言和 C++语言编写,以及使用了多种编译器进行测试,保证了源代码的可移植性。
(2)适用性高。
支持多种操作系统。支持多种存储引擎。能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。并且提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
(3)为多种编程语言(包括C、C++、Python、Java、PHP等)提供了 API。
(4)支持多线程,充分利用cpu。
(5)使用优化了的 SQL语句查询算法,提高查询效率。

2、补充:
另外,如果Linux作为操作系统,Apache和 Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费的,因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
所以也就是为什么很多新创业的公司或者中小型企业会使用mysql。

三、Oracle数据库
Oracle Database是甲骨文公司研发的关系型的大型的数据库管理系统。
它是数据库领域的老大。可以说Oracle数据库管理系统是世界上目前最流行的关系型数据库管理系统,市场占有率达40%。
原因有如下几个方面:
(1)系统开放性高。(付费之后)
Oracle能在所有主流系统平台上运行。支持所有的工业标准。采用完全开放的策略。对开发商全力支持。使客户可以选择最适合的解决方案。
(2)可伸缩性、并行性高。
Oracle数据库系统以分布式数据库作为核心,并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
(3)安全性高
Oracle数据库获得最高认证级别的ISO标准认证。
(4)性能优越
保持着开放平台下的TPC-D和TPC-C的世界记录。
(5)适用性高
多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
(6)风险低
完全向下兼容的数据库系统。得到很广泛的应用。没有任何风险。

四、MySQL和Oracle的比较
(1)Oracle支持多任务处理,也就是大并发,大访问量,是联机事务处理过程(OLTP)最好的工具。而MySQL却不能支持过大的访问量。
(2)Oracle是付费的大型数据库;Mysql是开源的中小型数据库,Oracle市场占有率很高,Mysql比较低。
(3)两者安装使用的空间差距很大的,Mysql安装完后一百多兆,Oracle却有三千多兆,而且使用的时候Oracle占用特别大的内存空间和其他机器性能。
(4)Oracle的操作较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。
而Mysql使用sql语言进行操作,比较简单。这也就造成一个人工成本问题,使用Oracle的公司,需要对数据库技术人员进行专门的培训,而MySQL却不用。
(5)给出现在一些知名公司数据库的配置:
一号店、JD:都是MySQL和Oracle的混合体系,还买了叼炸天的Oracle一体机(一台Oracle Exadata X5有24T内存,576核CPU,价格估计几千万到上亿人民币)
苏宁易购:是IBM一手打造的技术团队和技术体系,使用的是DB2、MySQL、Oracle的混合体系;
携程旅行:.NET技术为主,所以是以SQL Server为主、MySQL为辅的混合体系;
唯品会:也是MySQL和Oracle的混合体系;
亚马逊:选择的是Oracle+MongoDB。
fBay:用MySQL+MongoDB

五、JDBC
1、概念
(1)JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
(2)有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问MySQL数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

2、应用程序、JDBC API、数据库驱动及数据库之间的关系:
这里写图片描述
3、JDBC访问数据库步骤
(1)加载JDBC驱动程序(具体要加载哪一个数据库的驱动程序)
(2)建立数据库连接(驱动程序和数据库之间建立一条路径)
(3)创建Statement对象(负责发送SQL语句和接受查询结果)
(4)执行SQL语句(Statement对象的execuQuery()方法)
(5)处理返回结果
(6)关闭创建的对象

六、MySQL-Front
1、使用mysql数据库的时候,我们尽可能希望就像使用SQL Server一样有一个图形化工具,来方便我们的操作。其实mysql也有它的图形化工具,还有好多种比如MySQL GUI Tools、MySQL-Front等。

2、mysql-front是为mysql制作的一种图形化界面工具,可以管理和操作数据库,比如建表,修改数据,拖拽方式的数据库和表格,可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执行的SQL脚本,提供与外程序接口,保存数据到CSV文件等。

七、Oracle SQL Developer和SQL Plus
1、Oracle SQL Developer
Oracle SQL Developer是Oracle公司出品的一个免费的集成开发环境。是一个免费非开源的用以开发数据库应用程序的图形化工具,使用 SQL Developer 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL 语句。另外还可以创建执行和保存报表。

2、SQL Plus
SQL Plus是Oracle自带的数据库管理客户端,可以在这里编辑SQL语句执行,是命令行模式的。
借助SQL Plus可以查看、修改数据库记录。在SQL Pluss中,可以运行SQL Plus命令与SQL语句。

3、SQL Plus是Oracle自带的数据库管理客户端,安装Oracle软件时会自动安装上SQL Plus这个开发工具。
SQL Developer是Oracle公司自己推出的官方的开发工具。不过,我们在安装甲骨文(Oracle)公司的其中一个 数据库软件Oracle 11g时,在安装的过程中,系统也会附带的同时安装上SQL Plus和SQL Developer这两个开发工具。
二者在Oracle 11g上自带安装:
这里写图片描述
如图,Oracle 11g的两种SQL执行环境:
这里写图片描述
在学习Oracle数据库知识时,我们又发现SQL Developer比SQL Plus更加人性化,方便。

八、PL/SQL Developer
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL 只有 Oracle 数据库有。 MySQL 目前不支持 PL/SQL 的,但支持Navicat Premium。

九、Oracle的几个开发工具
Oracle 数据库并不提供图形界面的开发环境,只是自带了一个类似于 CMD 的 SQL Plus 开发工具,所以需要其他的集成开发软件。 总的来说,Oracle的开发工具为:
(1)SQL Plus,Oracle软件自带了一个类似于 CMD 的 SQL Plus 开发工具。
(2)Oracle SQL Developer,SQL Developer是Oracle公司自己推出的官方的免费的开发工具。在数据库软件Oracle 11g中,已经内嵌到数据库的安装程序中去了,相当于Oracle软件自带的开发工具了。
(3)PL/SQL Developer,是第三方的Oracle客户端开发工具,服务于Oracle,类似的工具还有Toad,SQL Plus,Oracle SQL Developer等等。安装PL/SQL Developer与安装Oracle软件没啥关系,但是如果没有Oracle客户端,安装PL/SQL Developer就没啥意义。
(4)Toad,Oracle数据库的第三方工具,当今oracle数据库主流工具之一。Toad里面与Oracle数据库的功能,基本上都可以在Oracle自带的SQL Plus里面实现。只是他把很多的命令图形化了,可以让记不住命令的人快速入门,帮助人更加方便的管理数据库。
总之,一般的开发使用Orale SQL Deveploer就可以了,而且是免费的,后两个是商业软件,需要授权费用。

十、Oracle SQL Developer和PL/SQL Developer
1、Oracle SQL Developer:
(1)SQL Developer目前已经支持Windows,Mac OS X,Linux系统,其具有多平台性(fedora、ubuntu等桌面级linux上唯一可用的图形化开发工具)。
(2)免费。
(3)除了可以连接oracle数据库以外,sybase、mysql、mssqlserver、MS Access等数据库也可以访问查看数据。
(4)同一个界面可以登陆多个数据库,方便在多个数据库之间操作。虽然这不是什么复杂的功能,但是,PL/SQL Developer却做不到。而且,Oracle SQL Developer的插件比较丰富。
(5)支持自定义快捷键可以实现组合键清空界面、组合键复制代码等快捷操作。
(6)比较占用内存消耗资源较多,这是缺点也是优点,缺点是相对消耗资源,优点是由于占用较多内存在执行几十、几百条sql的效率上很高,不像PL/SQL Dev还要有一个初始化的动作。
(7)Oracle SQL Developer,是Oracle官方自己出的工具,11g已经内嵌到数据库的安装里去了,也提供比较好的开发和管理的功能。其中带有的migration tools是此工具的一亮点,可以对异构或者同构的数据库进行数据迁移,在mysql和ms sql上都做个不是很复杂的迁移,还是很方便和实用的。而且该工具最好的一点是 java开发,使用的jdbc的连接方式,所以即使没有安装客户端也可以通过thin的方式连接。

2、PL/SQL Developer
(1)PL/SQL Developer只能在Windows上使用。
(2)PL/SQL Dev是老牌的开发工具,稳定性很高。
(3)新版本也开始支持其他数据库的连接,但支持的种类还是不够全。
(4)要同时访问多个数据库的话需要启动多个软件界面。
(5)不支持自定义快捷键,但是界面上的按键也足够开发者使用了。
(6)资源占用很少。
(7)HTML Manual功能可以将从Oracle下载的官方文档直接索引到自己的帮助当中,尤其适合不能上网的环境,即便能上网,在这个里面搜索一些语法、错误号等效率也是很高的。
(8)report窗口支持直接从用sql当中选取表的字段来做成图表,例如饼、曲线、柱状、雷达图等,可以另存为PDF、图片等。
(9)支持select * from xxx for update的修改方式,SQL Developer貌似不支持。
(10)PL/SQL需要安装Oracle的客户端,并且需要配置tnsname。

3、小结:两种工具大致上功能都是一样的。PL/SQL Developer还是比较主流的,在开发和管理上都比较方便,还支持导入、导出功能。目前使用PL/SQL Developer的Oracle DBA或者开发人员占据了超过60%,而其中绝大部分都在使用破解版。这两个工具在开发和管理上,PL/SQL胜出一筹。但是在迁移功能和跨平台上,SQL Developer又展现出它一大亮点。

本篇博文的写作非常感谢一些大神的帮助。
http://blog.sina.com.cn/s/blog_6372cc4801011ypv.html
https://www.cnblogs.com/xsht/p/5258071.html


http://chatgpt.dhexx.cn/article/GW20kkcG.shtml

相关文章

五大主流数据库深度对比!数据库开发、管理看这篇就够了

开发数据库应用,选择一个好的数据库是非常重要的。目前,商品化的数据库管理系统以关系型数据库为主导产品, 技术比较成熟。面向对象的数据库管理系统技术先进,数据库易于开发、维护。无论是关系型数据库还是非关系型数据库&#x…

mysql数据库开发环境_MySQL数据库教程-环境与集成开发工具

MySQL数据库基础教程 数据库是存储数据与管理数据的基础,也是目前绝大多数动态网站开发所必备的基础知识。MySQL数据库教程系列文章主要以MySQL数据库管理系统为例对关系型数据库相关定义与操作等进行讲解。并结合php与PDO等讲解,为初学者提供快速学习PHP动态网站开发所需的知…

C/C++ MySQL数据库开发

C/C++ MySQL数据库开发笔记 MySQL启动方式手动启动MySQL数据库:命令行方式启动MySQL数据库:配置环境变量MySQL在Linux下安装MySQL的配置文件重要参数设置C/C++ 访问MySQL数据库(MySQL开发环境的配置(MySQL开发头文件和库文件)MySQL 数据库的连接MySQL 数据类型以及对应的 …

1、 数据库开发规范

第1章 数据库开发规范的制定 数据库设计步骤: 1、数据结构设计:逻辑设计-》物理设计 2、实际工作中:逻辑设计物理设计 3、物理设计:表名字段名字段类型 数据库设计几个规范: 数据库命名规范、数据库基本设计规范…

数据库开发-2-开发数据库的要点

Lec2-开发数据库的要点 1. 开发成功数据库应用的特点 需要理解数据库体系结构需要理解锁和并发控制特性:每个数据库都以不同的方式实现最重要的是不要把数据库当"黑盒" 要了解每一个数据库的体系结构和特征最常见的问题就是因为我们对数据库本身了解不足…

数据库开发(Sqlite)

1、数据库开发 1.1 数据与数据管理 什么是信息?   信息是指对现实世界存在方式或运动状态的反应。 什么是数据?   数据是指存储在某一媒体上,能够被识别的物理符号;   数据的概念在数据处理领域已经被大为拓宽&#xff0c…

《软件测试的艺术》第4章:测试用例的设计-白盒测试

写在前面:原书中包含白盒测试、黑盒测试、错误猜测、测试策略四个小节,涵盖内容较多,因此按章节拆分叙述。 《软件测试的艺术》: 白盒测试--语句覆盖 语句覆盖的用例设计原则:将程序中的每条语句至少执行一次。 白盒…

《软件测试的艺术》读后感 Or 读书笔记

《软件测试的艺术》读后感 Or 读书笔记 第一章 一次自评价测试第二章 软件测试的心理学和经济学第三章 代码检查、走查与评审第四章 测试用例的设计第五章 模块(单元)测试第六章 更高级别的测试第七章 可用性(或用户体验)测试第八…

软件测试的艺术 学习笔记

文章目录 4.2黑盒测试4.2.1 等价划分4.2.2 边界值分析4.2.3 因果图 4.3 错误猜测4.4 测试策略 5. 模块(单元)测试5.1 测试用例设计5.2 增量测试5.3 自顶向下测试与自底向上测试5.3.1 自顶向下的测试5.3.2 自底向上的测试5.3.3 比较 5.4 执行测试 6 更高级别的测试6.…

《软件测试的艺术》第六章 更高级别的测试

《软件测试的艺术》第六章 更高级别的测试 6.0 前言软件开发过程模型 6.1 功能测试6.2 系统测试6.2.1 能力测试6.2.2 容量测试6.2.3 强度测试6.2.4 可用性测试6.2.5 安全性测试6.2.6 性能测试6.2.7 存储测试6.2.8 配置设置6.2.9 兼容性/转换测试6.2.10 安装测试6.2.11 可靠性测…

模块测试(单元测试)——软件测试的艺术

是大型程序测试的第一个步骤【大型程序即超过500条语句的程序】 了解 模块测试是对程序中的单个程序、子程序/过程进行测试的过程【并非对整个程序】: 关注点在较小单元,是一种管理组合的测试元素的手段减轻调试的难度,把错误定位到一个小…

《软件测试的艺术》第1章:一次自评价测试

写在前面: 相比于芯片验证,软件测试有着悠久的历史沉淀和更为完整的生态,和芯片验证在某些方面上几乎有着相同的思路和方法。因此从软件测试的视角出发,重新思考芯片验证的方方面面。第一个系列为《软件测试的艺术》学习。 第一…

9年测试老鸟:Glenford J编写《软件测试的艺术》PDF,高清中文版

内容简介 本书以一次自评价测试开篇,从软件测试的心理学和经济学人手,探讨了代码检查、走查与评审、测试用例的设计、模块(单元)测试、系统测试、调试等主题,以及极限测试、因特网应用系统测试等高级主题,全面展现了作者的软件测…

系统测试——软件测试的艺术

系统测试有着特定的目的:将系统或程序与其初始目标进行比较,给定目标后有两含义: 系统测试不局限于系统,若产品是一个程序:系统测试就是试图说明程序作为一个整体是如何不满足其目标的过程根据定义,若产品…

《软件测试的艺术》重点记录

----定义---- 测试是为发现错误而执行程序的过程。 测试提高了程序的可靠性或质量。 ----测试方法---- 黑盒测试:又称之为数据驱动的测试或输入/输出驱动的测试。 白盒测试:对程序的逻辑结构进行检查,从中获取测试数据。 ----测试的原则…

软件测试的艺术(测试工程师必备基本知识与概念)

目录: 一、黑盒测试与白盒测试: 等价类划分: 一、确定等价类 确定等价类是选取每一个输入条件(通常是规格说明中的一个句子或短语)并 将其划分为两个或更多的组。可以使用图 4-3 中的表格来进行划分。注意&#xff0…

《软件测试的艺术》第五章 模块(单元)测试

目录 5.0 前言 5.1 测试用例设计 5.2 增量测试 5.3 自顶向下测试和自底向上测试 5.4 执行测试 5.5 小结 5.0 前言 大型的软件程序需要特别的测试对策。在本章中我们会探讨构建大型程序测试的第一个步骤:模块测试(单元测试)&#xff0c…

软件测试的艺术_读书笔记(一)

软件测试的艺术是测试人员必看书,两年前看这本书给我很多理论和指导,现在重新看,按照个人的理解,整理一些学习笔记。 第一章 软件测试的心理学和经济学 最重要的一句话 : 测试人员的态度比实际测试过程本身更重要 1.…

【读书笔记】-《软件测试的艺术》

2018年10月13日23:24:26 自诩: 因为上一东家工作的原因而接触测试。原本本职是嵌入式软件,因为公司正在风口浪尖的阶段,就是一种小公司要发展成为大公司而经历的那种痛,全公司上下都忙得焦头烂额的这样的背景下,我从软…

《软件测试的艺术》第2章:软件测试的心理学和经济学

软件测试的心理学 书中此部分首先辨析了两个概念:软件测试的定义、成功的测试和不成功的测试。 软件测试的定义: 测试是为发现错误而执行程序的过程,我们应当假设程序是存在bug的;由于证明程序不存在错误的过程是一项看起来不…