WebcatEE 帮助文档


本文档的目标用户是 DBA 或者开发人员,阅读者应具有如下技能:

  1. 基本的数据库常识,理解所使用数据库的基本概念。
  2. 如果是 Java 开发人员,应该熟悉并理解 JDBC 知识。
  3. 如果以上技能都不具备,至少需要会使用 百度 或者 Google。

如果以上条件都不具备,请找专业人士帮忙!

数据库连接的任何问题都可以在这里找到答案: JAVA JDBC

一、驱动概述

JDBC(Java Database Connectivity),Java数据库连接,是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

WebcatEE 是一个服务端的数据库管理软件,WebcatEE 支持任何提供了 JDBC 驱动的关系型数据库和 Memcached、Redis、MongoDB 等 NOSQL 数据库。服务端的数据库实例可能是不同厂商的数据库,还可能拥有不同的版本,不同的数据库可能适用的驱动版本也不同。因此 WebcatEE 必须支持同时加载不同版本的驱动,并且互相之间互不干扰。

要添加并上传驱动,需使用管理员帐号登录到【管理控制台 - 数据库管理 - 驱动管理】页面,添加驱动并上传驱动文件,驱动文件通常为一个或数个扩展名为 jar 的压缩文件。

添加并上传驱动文件之后驱动才可用,在数据库编辑页面选择添加好的驱动即可。添加并上传驱动文件之后不需要重启 WEB 服务器,WebcatEE 会在第一次建立数据库连接时自动加载驱动。

在数据库详情页也可以看到驱动的详细信息,会显示加载的具体文件的路径。

二、驱动类型

JDBC 驱动程序共分四种类型:

类型1

JDBC-ODBC

这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。需要安装本地客户端或者动态库。

类型2

本地API驱动

这种类型的驱动通过客户端加载数据库厂商提供的本地代码库(C/C++等)来访问数据库,而在驱动程序中通过 JAVA JNI 调用本地动态库。需要安装本地客户端或者动态库。在 JDBC 规范刚出来的早期,很多数据库都是这种类型的驱动。

类型3

网络协议驱动

这种类型的驱动给客户端提供了一个网络API,客户端上的JDBC驱动程序使用套接字(Socket)来调用服务器上的中间件程序,后者在将其请求转化为所需的具体API调用。不需要安装本地客户端或者动态库,但本质上仍然是通过动态库操作数据库,只不过动态库在服务端。类型2到类型4过渡期的驱动,仍然不建议使用。

类型4

本地协议驱动

这种类型的驱动使用Socket,直接在客户端和数据库间通信。不需要安装本地客户端或者动态库。

目前大部分的数据库都提供了类型4的驱动,选择驱动也应该尽量选择类型4的驱动。WebcatEE 的数据库详情页也会显示出当前驱动是否是类型4的驱动。

三、数据库类型

文件型数据库

例如 Access,Sqlite,Derby(Derby也支持运行为服务版)等,这类数据库通常表现为本地磁盘上的一个文件,只能有一个本地进程读写,不支持网络访问。

通常一些存储的数据量不大的应用程序会使用文件型数据库。

内存型数据库

又称嵌入式数据库,应用场景类似于文件型数据库。例如 H2 等,数据都存储在内存中,某些数据库也支持存盘,但通常认为是内存型数据库。

专业型数据库

例如 Oracle,SqlServer,DB2,MySql,PostgreSQL等,专业的数据库软件,不同的数据库支持的特性不同,但支持网络访问,事务,并发等是基本条件。

服务端程序通常会使用这类数据库,存储的数据量通常较大,支持多客户端并发访问。

WebcatEE 通过 JDBC API 访问数据库,只要是提供了 JDBC 驱动的数据库,WebcatEE 都可以访问。

常见数据库的连接配置

数据库 驱动类 连接URL

注:这里只是常见数据库的一般连接配置信息,某些数据库驱动的不同版本,连接信息可能会变化,请以具体版本为准,如果不知道,请点击这里

此处没有列出的数据库请自行查阅数据库官方网站上的相关文档。

驱动下载

首先先去 maven repository 搜索,输入数据库名称即可搜索到相关驱动。什么是 maven repository

某些商业数据库可能在 maven repository 中没有对应的驱动,需要到数据库的官方网站下载。

驱动选择的原则

  1. 选择与数据库版本最适合的驱动版本,而不是选择最新的。

    1. 无论是商业数据库还是开源数据库,在 JDBC API 的实现上都不是完全遵守的,都有些未实现的API。

    2. 几乎所有数据库的 JDBC 驱动都存在或多或少的BUG,对于一般的增删改查,基本上都没有问题,但是涉及到数据库管理功能,大部分的驱动实现都有BUG,某些驱动甚至存在很严重的问题。

    3. 不同版本的驱动可能针对的数据库版本也不同,需要根据数据库的版本选择适合的驱动版本。

    4. 类型2的驱动需要本地安装数据库客户端,这类驱动通常也比较老,尽量选择类型4的驱动。

  2. 不要随意更换 WebcatEE 自带的 MySql 驱动。

    一些用户会自行更换 WebcatEE 自己用的 MySql 驱动,结果导致了不可预料的问题。如果不是更了解,尽量保持 WebcatEE 原有的驱动。


# 备注
Microsoft SQL Server 2000 的官方驱动 BUG 很多,建议使用 JTDS.

1. JTDS 适用的数据库
    Microsoft SQL Server (6.5, 7, 2000, 2005, 2008, 2012)
    Sybase ASE (10, 11, 12, 15).