sql和java数据类型映射

sql和java数据类型映射

ID:8972541

大小:60.00 KB

页数:15页

时间:2018-04-13

sql和java数据类型映射_第1页
sql和java数据类型映射_第2页
sql和java数据类型映射_第3页
sql和java数据类型映射_第4页
sql和java数据类型映射_第5页
资源描述:

《sql和java数据类型映射》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Sql和java数据类型映射概述由于SQL数据类型和Java数据类型是不同的,因此需要某种机制在使用Java类型的应用程序和使用SQL类型的数据库之间来读写数据。为此,JDBC提供了getXXX和setXXX方法集、方法registerOutParameter和类Types。本章汇集了影响各种类和接口的数据类型的有关信息,并列出所有的对应关系表(这些表显示了SQL类型和Java类型之间的映射关系)以便于参考。8.2将SQL数据类型映射为Java类型不幸的是,不同数据库产品所支持的SQL类型之间有很大的不同。即使不同的数据库以相同的语义支持SQL类

2、型,它们也可能用不同的名称。例如,绝大多数的主流数据库都支持一种表示大型二进制值的SQL类型,但Oracle把这种类型叫做LONGRAW,Sybase把它叫做IMAGE,Informix却把它叫做BYTE,而DB2又把它叫做LONGVARCHARFORBITDATA。幸运的是,JDBC程序员通常并不需要自己去关心目标数据库所用的实际SQL类型的名称。大多数时候,JDBC程序员将根据一些现有的数据库表来进行编程。他们无须关心用于创建这些表的确切SQL类型的名称。JDBC在java.sql.Types类中定义了一系列的常规SQL类型标识符。这些类型可

3、用于表示那些最为常用的SQL类型。在用JDBCAPI编程时,程序员通常可以使用这些JDBC类型来引用一般的SQL类型,而无须关心目标数据库所用的确切SQL类型的名称。在下一节中将对这些JDBC类型进行仔细说明。程序员用到SQL类型名称的主要地方是在用SQL的CREATETABLE语句创建新的数据库表时。这种情况下,程序员必须注意应该使用目标数据库所支持的SQL类型名称。如果需要知道各种SQL类型在某个特定的数据库中的行为的确切定义,我们建议查阅一下数据库文档。如果想要编写一种可在各种数据库上创建表的可移植JDBC程序,用户主要有两个选择。第一个选

4、择是:限制自己只使用那些被广为接受的SQL类型名称(例如INTEGER、NUMERIC或VARCHAR)。这些类型有可能能适应所有的数据库。第二个选择是:用java.sql.DatabaseMetaData.getTypeInfo方法来找出给定的数据库实际上支持哪些SQL类型,然后选择与给定JDBC类型相匹配的特定于数据库的SQL类型名。JDBC定义了一个从JDBC数据库类型到Java类型的标准映射。例如,JDBC的INTEGER类型通常映射为Java的int类型。这可支持简单的接口,将JDBC值读写为简单的Java类型。Java类型不必与JDB

5、C类型完全形同;它们只须能够用足够的类型信息来代表JDBC类型,从而能正确地存储和取出参数和从SQL语句恢复结果就可以了。例如,JavaString对象可能并不能精确地与任何JDBCCHAR类型匹配,但它却可给出足够的类型信息来成功地表示CHAR、VARCHAR或LONGVARCHAR类型。8.3JDBC类型本节描述各种JDBC数据类型及其与标准SQL类型和Java类型的关联方式。8.3.1CHAR、VARCHAR和LONGVARCHARJDBC类型CHAR、VARCHAR和LONGVARCHAR密切相关。CHAR表示固定长度的小字符串,VARC

6、HAR表示长度可变的小字符串,而LONGVARCHAR表示长度可变的大字符串。与JDBCCHAR对应的是SQLCHAR类型,其定义由SQL-92给出,且所有主要的数据库都支持它。它接受用于指定字符串最大长度的参数,例如CHAR(12)即定义了一个长度为12个字符的字符串。所有主要的数据库都支持长度达254个字符的CHAR。与JDBCVARCHAR对应的是SQLVARCHAR类型,其定义由SQL-92给出,且所有的主要数据库都支持它。它接受用于指定字符串最大长度的参数,例如VARCHAR(12)即定义了一个最大长度为12个字符的字符串。所有主要数据

7、库都至少支持长度达254个字符的VARCHAR。当把字符串的值赋给VARCHAR变量时,数据库就记住该字符串的长度,使用SELECT时,它可以返回准确的原始字符串。不幸的是,对于JDBCLONGVARCHAR类型,目前并没有一致的SQL映射。所有主要数据库都支持某种类型的长度可变的大字符串,这种字符串支持高达十亿位字节的数据,但SQL类型名称却变化多样。Java程序员不必区分CHAR、VARCHAR和LONGVARCHAR这三种类型的JDBC字符串。它们都可表示为JavaString,并且在不知道所需要的确切数据类型时也可正确读写SQL语句。CH

8、AR、VARCHAR和LONGVARCHAR可映射为String或char[],但String更适合于一般用法。同时,String类能使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。