`
stone_1231
  • 浏览: 38807 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JDBC TYPE 与JAVA TYPE

阅读更多

Java和SQL各自有一套自己定义的数据类型(jsp的数据类型实际上就是Java的数据类型),我们要在Jsp程序和数据库管理系统之间正确的交换数据,必然要将二者的数据类型进行转换。先让我们来看两个表:

 

 

 

这里,大伙要注意了,并不是所有的数据类型在各种数据库管理系统中都被支持。下面,就几种常用的数据类型之间的转化进行说明:

 

(1)      CHAR, VARCHAR, 和 LONGVARCHAR

 

在SQL语言中,有三种分别表示不同长度的字符类型CHAR, VARCHAR, 和 LONGVARCHAR,在Java/Jsp中并没有相应的三种不同的数据类型与之一一对应,JDBC的处理方法是将其与String或者char[]对应起来。在实际编程中不必对着三种SQL数据类型进行区分,全部将他们转化为Sting或者char[]就可以了。而且通常使用应用的非常普遍的String类型。我们还可以利用String类提供的方法将一个String对象转化为char[],或者用char[]为参数构造一个Stirng对象。

对于定长度的SQL数据类型CHAR(n),当从数据库管理系统中获得的结果集提取该类型的数据时,JDBC会为其构造一个长度为n的String对象来代表他,如果实际的字符个数不足’n’,系统会自动为String对象补上空格。当向数据库管理系统写入的数据类型应该是CHAR(n)时,JDBC也会将该String对象的末尾补上相应数量的空格。

一般情况下,CHAR, VARCHAR, LONGVARCHAR和String之间可以无差错的进行转换。但非常值得注意的是LONGVARCHAR,这种SQL的数据类型有时在数据库中代表的数据可能有几兆字节的大小,超过了String对象的承受范围。JDBC解决的办法是用Java的Input Stream来接受这种类型的数据[以后我们回涉及到]。Input Stream不仅支持ASCII,而且支持Unicode,我们可以根据需要进行选择。

 

(2)      DECIMAL 和 NUMERIC

 

SQL的DECIMAL 和 NUMERIC通常用来表示需要一定精度的定点数。在Java的简单数据类型中,没有一种类型与之相对应。但从JDK1.1开始,Sun公司在java.math.*包中加入了一个新的类BigDecimal,该类的对象可以与DECIMAL 、NUMERIC进行转换。

另外,当从数据库管理系统中读取数据时,还可以用getString()方法来获取DECIMAL 和 NUMERIC。

 

(3)      BINARY, VARBINARY, 和 LONGVARBINARY

 

在编程时无须精确区分这三种SQL数据类型,JDBC将他们统一影射为byte[]。其中LONGVARBINARY和LONGVARCHAR相似,可以代表几兆字节的数据,超出数组的承受范围。解决的办法依然是用Input Stream来接受数据。

 

(4)      BIT

 

代表一个二进制位的BIT类型被JDBC影射为boolean型。

 

(5)      TINYINT, SMALLINT, INTEGER, 和 BIGINT

 

SQL语言的TINYINT, SMALLINT, INTEGER, 和 BIGINT分别代表8位、16位、32位、64位的数据。他们分别被影射为Java的byte, short, int, 和 long

 

(6)      REAL, FLOAT, 和 DOUBLE

 

SQL定义了REAL, FLOAT,  DOUBLE来支持浮点数。JDBC将REAL影射到Java的float,将FLOAT,DOUBLE影射到java的double。

 

(7)      DATE, TIME, 和 TIMESTAMP

 

SQL定义了三种和日期相关的数据类型。 DATE代表年、月、日,TIME代表时、分、秒,TIMESTAMP结合了DATE和TIME的全部信息,而且增加了更加精确的时间计量单位。

在java的标准类库中,java.util.*包中的Date类用来表示日期和时间。但是该类和SQL中的DATE, TIME, 和 TIMESTAMP直接影射关系并不清晰。并且,该类也不支持TIMESTAMP的精确时间计量单位。因此,Sun公司在java.sql.*中为java.util.Date增加了三个子类:java.sql.Date,java.sql.Time ,java.sql.Timestamp,分别与SQL中的三个日期数据类型相对应。

 

  • 大小: 49.8 KB
  • 大小: 41.5 KB
分享到:
评论
1 楼 beiyeren 2012-11-19  
很有用,感谢楼主

相关推荐

    Java连接达梦数据库驱动dm_jdbc

    Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm7Dictionary.jar dm_jdbc\Dm7JdbcDriver14.jar dm_jdbc\Dm7JdbcDriver15.jar dm_jdbc\Dm7JdbcDriver16....

    Java JDBC Sql Server 驱动 Jar包 Java7,8

    不断致力于互操作性,Microsoft 提供与 SQL Server 和 Azure SQL 数据库使用了一个 Java 数据库连接 (JDBC) 驱动程序。 该驱动程序免费提供,不需要额外付费,并且可从任何 Java 应用程序、应用程序服务器或支持 ...

    适用于 SQL Server 2014、2012、2008R2的JDBC Drivers 4.1

    它属于 Type 4 JDBC 驱动程序,通过 Java 平台(企业版 5、6 和 7)中可用的标准 JDBC 应用程序接口 (API) 提供数据连接。 适用于 SQL Server 的 Microsoft JDBC Driver 4.1(预览版)与 JDBC 4.0 兼容,并且可以在...

    java部门管理的项目源码-elasticsearch-jdbc:Elasticsearch的JDBC导入器

    java部门管理的项目源码 图片来自 Creative Commons Attribution-NoDerivs ..."type" : "jdbc", "jdbc" : { "url" : "jdbc:mysql://localhost:3306/test", "user" : "", "password" : "", "sql" : "select

    Microsoft SQL Server JDBC Driver 2.0

    Microsoft SQL Server ...此版本的 JDBC 驱动程序与 JDBC 4.0 兼容,并在 Java 开发工具包 (JDK) 5.0 版或更高版本上运行。它已针对所有主要应用程序服务器(包括 BEA WebLogic、IBM WebSphere 和 JBoss)进行了测试。

    JDBC详解HTML-JDBC.pp

    <3>.JDBC网络纯java驱动程序:将JDBC转换为与DBMS无关的网络协议,又被某服务器转换为一种DBMS 协议,以操作各种数据库 <4>.本地协议纯java驱动程序:将JDBC调用直接转换成JDBC所使用的网络协议 2、JDBC操作基本...

    微软开源的JDBC 驱动 MSSQL-JDBC.zip

    用于 SQL Server 的 Microsoft JDBC 驱动程序是 Type 4 JDBC 驱动程序,通过 Java 平台企业版中提供的标准 JDBC 应用程序接口(API)提供数据库连接。 驱动程序提供从任何 Java 应用程序、应用程序服务器或启用 Java...

    java中jdbc的总结

    NULL 博文链接:https://xumiao900.iteye.com/blog/965380

    JDBWC - Type 3 Java JDBC driver:JDBC网络驱动程序-开源

    适合需要跨Internet等广域网进行JDBC访问但不希望通过远程主机防火墙公开远程数据库服务器的Java应用程序。 该驱动程序非常适合将Java客户端应用程序连接到(动态)网站数据库,而不会冒着数据库服务器安全性的风险...

    Java 书籍管理系统(jdbc mysql poi)

    使用Java + JDBC +MySQL 完成 所有数据存入数据库 具体描述:...

    sqljdbc42jre包/Microsoft JDBC Driver 6.0 for SQL Server微软官网下载

    Microsoft SQL Server JDBC...下载 Microsoft JDBC Driver 6.0 for SQL Server,这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform Enterprise Edition 中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。

    Microsoft SQL Server 2008 JDBC 3.0(微软官网下载)

    SQL Server JDBC Driver 3.0,这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform, Enterprise Edition 5 及更高版本中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。 系统要求: •支持的操作系统:...

    sql server 2005 jdbc

    This driver is a Type 4 JDBC driver that provides database connectivity through the standard JDBC application program interfaces (APIs) available in Java Platform Standard Edition 5 (Java SE 5) and ...

    SQL Server JDBC Driver 2.0

    这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform, Enterprise Edition 5 中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。 此版本的 JDBC 驱动程序与 JDBC 4.0 兼容,并在 Java 开发工具包 (JDK) ...

    金仓数据库KingbaseESV7JDBC驱动

    金仓数据库KingbaseESV7的JDBC驱动包,用于java开发连接金仓数据库

    sql server jdbc 4.2驱动

    Microsoft JDBC Driver for SQL Server 是一个 Type 4 JDBC 驱动程序,它通过 Java 平台中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。 所有用户都可以免费下载驱动程序。 通过这些程序,用户可以从...

    JDBC学习资料

    详解JDBC,如何与数据库交互数据。 1 What is JDBC? 2 The most important hiberarchy of JDBC interface. 3 The type of JDBC. 4 The step of developping a JDBC app. 5 How to handle resultset? 6 Statement ****...

    mssql-jdbc:Microsoft JDBC Driver for SQL Server 是 Type 4 JDBC 驱动程序,它通过标准 JDBC 应用程序接口 (API) 提供与 SQL Server 的数据库连接

    Microsoft JDBC Driver for SQL Server 是一个 Type 4 JDBC 驱动程序,它通过 Java Platform, Enterprise Editions 中提供的标准 JDBC 应用程序接口 (API) 提供数据库连接。 驱动程序提供从任何 Java 应用程序、...

    JDBC-api:JDBC API(Type1 驱动程序)

    JDBC (JAVA Database Connectivity) API 是 Java 中的应用程序编程接口,为用户提供与数据库 (MySQL) 交互以进行数据操作、管理和创建。 目前我已经实现了Type 1 JDBC API,这意味着它利用了JDBC-ODBC Bridge底层的...

Global site tag (gtag.js) - Google Analytics