JDBC由Sun公司制定,全称JavaDataBase Connectivity,是一种可以执行SQL语句并可返回结果的javaAPI,支持多种关系型数据库,封装在Java.sql.*

它的具体位置在\jre7\lib\rt.jar

1、JDBC的工作原理

JDBC的最大特点是独立于具体的关系型数据库,它定义了一系列的Java类,完成数据库连接(Connections)、SQL语句(Statements)、结果集(ResultSet)和其他的数据库对象,从而达到Java程序和数据库交互的目的

2、JDBC的四种驱动类型

在Java程序中,JDBC可以分为以下4种驱动类型:

(1)JDBC-ODBC Bridge

用JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并完成配置

可以看出,中间存在一个JDBC-ODBC的转换,影响了执行的效率

(2)JDBC Native Bridge

这种方式需要在执行JSP程序的机器上安装本地的针对特定数据库(MySQL/SQL/Oracle)的驱动程序,通过这个程序把对数据库的JDBC调用转化为数据库的API调用,性能比JDBC-ODBC更好,缺点是要安装驱动

(3)JDBC-Network Bridge

这种方式不需要安装驱动程序,直接用JDBC通过网络连接数据库,与平台无关,所以在WEB开发中大量使用

(4)Pure Java JDBC Driver

Java驱动程序运行在客户端,客户端可以直接访问数据库,其体系结构最为简单,因此安全性及程序的逻辑性不行

3、JDBC连接数据库(以mysql为例)

(1)加载JDBC驱动程序

通过java.lang.Class类中的静态方法forName实现

(2)提供JDBC连接的URL

协议:子协议:数据源标识

其中,协议:在JDBC中总是以jdbc开始

子协议:是Bridge的驱动程序或是数据库管理系统名称,如MySQL就是mysql,常用的端口号是3306

数据源标识:标记找出数据源的地址和连接接口

(3)创建数据库的连接

向java.sql.DriverManager请求获取Connection对象

(4)创建Statement

其中Statement分为三类,区别如下:

A、执行静态SQL:通过Statement实例实现

B、执行动态SQL:通过PreparedStatement实例实现

C、执行数据库存储过程:通过CallableStatement实例实现

(5)执行SQL语句,完成数据库的增删改或是查询功能

其中Statement接口提供了三种执行SQL语句的方法,区别如下:

A、Result executeQuery(String sqlString):用于查询数据库的SQL,如SELECT,返回一个结果集(ResultSet)

B、int executeUpdate(String sql):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL(数据定义)语句

C、boolean execute(String sql):用于返回多个结果集、多个更新计数或者二者组合(不太懂)

(6)得到处理结果(ResultSet)

(7)关闭JDBC对象

先关闭Statement再关闭Connection连接

jsp对数据库的使用的更多相关文章

  1. jsp与数据库的连接

    经过一段时间的学习与上网查资料,我已经成功的用java语言连接上了数据库, 本以为同理jsp跟数据库的连接肯定水到渠成的,但是在经过尝试很多次后我发现现实永远是骨感的,最终结果是花了一个下午的时间去建 ...

  2. jsp链接数据库

    数据库表代码: /*Navicat MySQL Data Transfer Source Server : localhost_3306Source Server Version : 50528Sou ...

  3. JSP-Runoob:JSP 链接数据库

    ylbtech-JSP-Runoob:JSP 链接数据库 1.返回顶部 1. JSP 连接数据库 本教程假定您已经了解了 JDBC 应用程序的工作方式.在您开始学习 JSP 数据库访问之前,请访问 J ...

  4. java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)

    1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  5. JSP读取数据库二进制图片并显示

    用JSP从数据库中读取二进制图片并显示在网页上 环境mysql+tomcat: 先在mysql下建立如下的表. 并存储了二进制图像(二进制格式存储图片可以参考我的另一篇博客:https://www.c ...

  6. Hibernate和jsp做数据库单表的增删改查

    虽然很基础,但是我转牛角尖了~~~~这是几个文件 1.最重要的.Java文件 package com.chinasofti.hibb.struts; import org.hibernate.Sess ...

  7. jsp java 数据库 乱码总结

    Java中文问题的由来: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因主要有两方面,Java和JSP文件本身编译时产 ...

  8. JSP实现数据库(MySQL)查询——Java Web练习(二)

    1.创建数据库表student(数据库test01) 2.修改success.jsp页面,修改后的页面整体代码如下: <%@ page language="java" imp ...

  9. jsp执行数据库查询并分页

    需求: 有一批企业的基本信息需要展示出来,要求一级页以列表形式展示企业清单,点击公司名称后进入二级页面,二级页面展示企业简介和几张图片. 实现效果: 开发环境: Win7,Eclipse,Mysql ...

  10. mysql+servlet+jsp实现数据库的增删改查

    首先,了解数据库目前我们仅仅用来存放数据,在这里我们在数据库中生成一个表,包含id,classname,teacher,location.Tomcat用来配置eclipse,只有这样我们才能使用JSP ...

随机推荐

  1. spark streaming 接收kafka消息之三 -- kafka broker 如何处理 fetch 请求

    首先看一下 KafkaServer 这个类的声明: Represents the lifecycle of a single Kafka broker. Handles all functionali ...

  2. uint16,uint32是什么?

    记得之前在刷笔试题的时候就看见过这个问题,发现当时上网百度后又忘了. 最近在看CryEngine3引擎代码的时候又晕了,趁现在赶紧记下来~ 在查看CE3的代码时我发现了这个变量,TFlowNodeId ...

  3. Hexo+NexT(二):Hexo站点配置详解

    阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...

  4. 推荐一个Redis管理工具

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型.内置复制.Lu ...

  5. vscode左边侧边栏字体的大小

    相信很多小伙伴们都会在用vscode的时候,当屏幕大小发生变化的时候,你可能会觉得左边的字体太小了,我也遇到了这样的问题,百度也没有找到解决办法,自己摸索了几天,发现可以通过ctrl+shift+ + ...

  6. linux命令---grep命令使用

    grep 常用参数: -w 精准匹配 -r 递归匹配 -l 列出匹配内容的文件名称-v 排除 结合sed,批量替换文件内容 sed 's#10.151.30.165#10.0.3.162#g' -i ...

  7. kubernetes实战篇之helm示例yaml文件文件详细介绍

    系列目录 前面完整示例里,我们主要讲解helm打包,部署,升级,回退等功能,关于这里面的文件只是简单介绍,这一节我们详细介绍一下这里面的文件,以方便我们参照创建自己的helm chart. Helm ...

  8. sql 中 并集union和union all的使用区别

    union  操作符用于合并两个或多个 SELECT 语句的结果集,并且去除重复数据,按照数据库字段的顺序进行排序. 例 SELECT NAME FROM TABLE1UNIONSELECT EMP_ ...

  9. 带你全面了解高级 Java 面试中需要掌握的 JVM 知识点

    目录 JVM 内存划分与内存溢出异常 垃圾回收算法与收集器 虚拟机中的类加载机制 Java 内存模型与线程 虚拟机性能监控与故障处理工具 参考 带你全面了解高级 Java 面试中需要掌握的 JVM 知 ...

  10. GoLand Active Code

    56ZS5PQ1RF-eyJsaWNlbnNlSWQiOiI1NlpTNVBRMVJGIiwibGljZW5zZWVOYW1lIjoi5q2j54mI5o6I5p2DIC4iLCJhc3NpZ25lZ ...