JSP基础(十二)——初步认识JDBC

    与数据库交互是Web应用程序的一个重要的组成部分,JSP使用JDBC(Java DataBase Connectivity)技术来实现与数据库的连接。JDBC提供了JSP操作数据库的各种接口,所以JDBC数据库编程对Web开发是非常重要的。很多DBMS(数据库管理系统)都提供JDBC驱动程序,JSP可以直接利用它访问数据库,有些DBMS没有提供JDBC驱动程序,JSP可以通过Sun公司的JDBC-ODBC桥来实现对它们的访问。

一、JDBC概述

1.1 JDBC的用途

    JDBC主要有3种作用:①与数据库连接    ②发送SQL语句     ③处理语句执行结果

    JDBC是一种低级的API接口,它直接调用SQL语句,功能简单,在它的基础上,可以建立起一些高级的API接口,高级API接口往往更为方便且便于理解。有了JDBC API,就不必为了访问MySQL、SQL Server或Oracle等数据库专门编写一个程序 ,我们只需要调用JDBC API编写一个程序就够了,只要保证所使用的SQL语法在各种数据库中都支持就够了。


1.2 JDBC的典型用法

▶两层模型

     一个Java Applet或者一个Java应用直接同数据库连接,这就需要与数据库进行连接的JDBC驱动器。用户的SQL语句被传给数据库,而这些语句执行结果将被返回给用户。数据库可以在同一计算机上,也可以在另一台计算机上通过网络进行连接,这称为Client/Server结构。



▶三层模型

    在三层模型中,命令将被发送到服务的“中间层”,“中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回“中间层”,最后“中间层”将结果返回给用户。“中间层”优势:一是“中间层”可以控制访问并协同更新数据库;二是有了中间层之后,用户就可以使用一个易用的高层的API,这个API可以有“中间层”转换成底层调用。



1.3 JDBC体系结构

    通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。JDBC API的作用就是屏蔽不同的数据库驱动程序之间的差别,使得我们有一个标准的、纯Java的数据库程序设计接口,为在Java中访问任意类型的数据库提供技术支持,而驱动程序管理器(Driver Manager)则为应用程序加载数据库驱动程序。数据库驱动程序是与具体的数据库相关的,用于向数据库提交SQL请求。



1.4 驱动器类型

    要通过JDBC来存取某一特定的数据库,必须有相应的JDBC驱动程序,它往往由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁。

    JDBC驱动程序是用于特定数据库的一套实施了JDBC接口的类集,共有四种类型的JDBC驱动程序:

①JDBC-ODBC桥驱动程序

    能使客户端通过JDBC调用连接到一个使用ODBC驱动程序的数据库。使用这类驱动程序需要每个客户端计算机都安装数据库对应的ODBC驱动程序,该驱动程序不一定要与java 兼容。


②部分本地API Java驱动程序

   将JDBC调用转换为特定的数据库调用,与JDBC-ODBC桥驱动程序一样,这类驱动程序也要求客户端计算机安装相应的二进制代码。所以这类驱动程序不太适合使用数据库的Applet。(本地驱动程序利用客户机上的本地代码库与数据库进行直接通信)


③JDBC纯网络Java驱动程序

    能将JDBC的调用转换为独立于数据库的网络协议,这种类型的驱动程序特别适合具有中间件的分布式应用(但目前这类驱动程序的产品不多)。


④本地协议的纯Java驱动程序

    能将JDBC转换为数据库直接食用的网络协议,它不需要安装客户端软件,它是100%的Java程序,使用Java Sockets来连接数据库,所以特别适合于通过网络使用后台数据库的Applet。



1.5 安装驱动器

    JDBC主要由接口组成。组成JDBC的2个包: java.sql、 javax.sql
 开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动器)。

以MySQL的Connector/J驱动程序为例,安装步骤:

    ①在MySQL的官方网站上免费取得,网址为www.mysql.com/downloads/connector/j/,下载最新版本的压缩包名为mysql-connector-java-5.1.44.zip


    ②解压文件-》把里面的mysql-connector-java-5.1.44-bin.jar文件复制到-》Tomcat安装目录的lib目录下

  

    ③右键某个Web工程 -》Build Path,Libraries  -》Add External JARs  -》mysql-connector-java-5.1.44-bin.jar添加进来 -》finish





二、Java与SQL的数据类型转换

SQL到Java的数据类型映射表
SQL数据类型Java数据类型
CHARString
VARCHARString
LONGVARCHARString
NUMBERICjava.math.BigDecimal
BIT

java.math.BigDecimal

TINYINTByte
SMALLINTShort
INTEGERInt
BIGINTLong
REALFloat
FLOATDouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp

Java到SQL的数据类型映射表
Java数据类型SQL数据类型
StringVARCHAR or LONGVARCHAR
java.math.BigDecimalNUMBERIC
BooleanBIT
ByteTINYINT
ShortSMALLINT
IntINTEGER
LongBIGINT
FloatREAL
DoubleDOUBLE
byte[]VARBINARY or  LONGVARBINARY
java.sql.DateDATE
java.sql.TimeTIME
java.sql.TimestampTIMESTAMP


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是一个最简单,也是学习jsp必须会的一个入门实验----通过jdbc连接数据库。 采用jsp+access数据库实现,同时使用javabean通过jdbc连接数据库。运行结果将显示从数据库查询出的图书。里面包含了javabean的源代码及解释。 提示:如果是要下jsp图书管理系统的朋友,请下载我上传的另一个资源----jsp+access图书管理系统。就不要再下本资源了,本资源只是做了一个图书的表,用以连接数据库查询图书,并没有对图书的增、删、改功能。 javabean源代码: package sjob; import java.sql.*; public class connBook { private Statement state=null; private Connection conn = null; ResultSet results=null; public connBook() { } public void openConn()throws Exception //连接数据库 { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:book"; conn=DriverManager.getConnection(url,"",""); //数据库、用户名、密码 ,创建连接对象 } catch(SQLException e) //异常处理 { System.err.println("Data.executeQuery: " +e.getMessage()); } } public ResultSet queryResult(String query) { results = null; try { state=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //创建访问数据库的对象 results=state.executeQuery(query); //查询并返回结果 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } return results; } public void closeState() { try { state.close(); //关闭访问数据库的对象 } catch(SQLException e) { System.err.println("Date.executeQuery: " + e.getMessage()); } } public void closeConn() { try { conn.close(); //断开连接 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值