JSP--JDBC技术

JDBC技术
1、JDBC简介
大型网站是离不开数据库的,使用JDBC技术链接数据库
JDBC:java Data Base Connectivity,使用JDBC连接数据库后数据库的增/删/改/查及批处理等操作
JDBC是java程序与数据库系统通信的标准API,定义在JDK的API中,JDBC在java程序和数据库系统之间建立了桥梁
java程序<------->JDBC API<--------->数据库驱动<--------->数据库系统

2、JDBC连接数据库的流程
 1)注册数据库驱动
  连接数据库需要将数据库厂商提供的数据库驱动类注册到JDBC的驱动管理器中,通常是将数据库驱动类加载到JVM虚拟机。
  Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动,注册到驱动管理器
 2)构建数据库连接URL
  这个URL一般由数据库厂商制定,不同的数据库的URL不同,但基本的格式都是;JDBC协议+IP地址或域名+端口+数据库名称。
  MySQL数据库的URL的字符串为:"jdbc:mysql://localhost:3306/db_admin";   //db_admin是本地创建的一个数据库名称
 3)获取Connection对象
  在前两步完成后,即可通过驱动管理器获取数据库的Connection对象,该对象是JDBC封装的数据库连接对象,创建此对象后才可以对数据库执行相关操作
  DriverManager.getConnection(url,userName,password);
  获取Connection对象需要DriverManager对象,该对象的getConnection()方法提供数据库连接URL,数据库用户名和密码创建Connection对象

提示:JDK中不包含数据库的驱动程序,使用JDBC操作数据库需要事先下载数据库厂商提供的驱动包,由于使用的是mysql数据库,故添加的是MySQL官方提供的数据库驱动包
为:mysql-connector-java-5.1.20-bin.jar    //数据库驱动包
JDBC -------> jar包(驱动包) ---------> 操作数据库
try{
  Class.forName("com.mysql.jdbc.Driver");
  String URL = "jdbc:mysql://localhost:3306/db_admin";
  String userName = "root";
  String password = "123";
  Connection connection = DriverManager.getConnection(URL,userName,password);
  if(connection!=null){
    System.out.println("数据库连接成功");
  }else{
    System.out.println("数据库连接失败");
  }
}catch(exception ee){
  System.out.println(ee);
}

3、JDBC的核心API
JDBC核心API主要包括5个接口:
数据库连接接口Connection
驱动程序管理类 DriverManager
执行SQL语句的Statement接口 :执行静态SQL语句
预编译SQL语句的PreparedStatement接口:执行动态SQL语句
结果集ResultSet接口

DriverManager.getConnection()-----------> Connection -------> Connection.createStatement()----> Statement对象
1)DriverManager类
  负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接。
  该类也处理诸如驱动程序登录时间限制,以及显示登录和跟踪消息等,成功加载Driver类并在DriverManager类中注册后,DriverManager类即可建立数据库连接
  当调用DriverManager类的getCoonnection()方法请求建立数据库连接时,该类将试图定位一个适当的Driver类,并检查定位到的Driver类是否可以建立连接,如果可以
  则建立连接并返回。否则抛出SQLException异常。
 该类主要方法:
  getConnection(String url,String user,String password)
    根据指定数据库连接的url和用户名、密码建立数据库连接
  getDrivers()
    获取当前DriverManager中已加载的所有驱动程序,返回值为:Enumeration类型
  deregisterDriver(Driver driver)
    从DriverManager的管理列表删除一个驱动程序。
  registerDriver(Driver driver)
    向DriverManager注册一个驱动对象,参数driver为要注册的驱动

2)代表数据库连接的Connection接口
  Connection接口用于创建数据库的链接会话,只有获得该连接对象后才能访问数据库,并操作数据库
方法:
close()  关闭连接,释放系统资源
createStatement()  创建一个Statement对象
isClosed()  检索此Connection对象是否已经被关闭
preparedStatement(String sql)  创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库

3)执行SQL语句的Statement接口
  Statement接口用于执行静态的SQL语句,并返回一个生成结果的对象。利用该接口对象把静态的SQL语句发送到数据库编译执行,然后返回数据库的处理结果
方法:
close()   释放此Statement对象的数据库和JDBC资源
execute(String sql)   执行给定的SQL语句,该语句可能返回多个结果
addBatch(String sql)  向Batch中添加待执行的SQL语句
executeBatch()  将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组
executeQuery(String sql)   执行给定的SQL语句,该语句返回单个ResultSet对象
executeUpdate(String sql)   执行给定的SQL语句,该语句可能为insert update delete

4)预编译SQL语句的PreparedStatement接口
  使用占位符"?"代替参数,通过setXX()为SQL语句的参数赋值
execute()
executeQuery()
executeUpdate()
setBoolean(int parameterIndex,boolean x) 将指定参数设置为给定的java Boolean值
setByte(int parameterIndex,byte x)
setDate(int parameterIndex,Date x)
setInt(int parameterIndex,int x) //为SQL语句的第parameterIndex个参数赋值为x
setString(int parameterIndex,String x)

5)结果集ResultSet接口
  ResultSet接口保存JDBC执行查询时返回的结果。该结果集与数据库字段相对应。由行和列组成,并且在ResultSet结果集的行上提供指针,最初指针指向结果集的第一行之前
  调用next()方法可将指针移动到下一行,如果下一行没有数据,则返回false,一般对结果遍历通过while()循环
方法:
afterLast()    将指针移到此ResultSet对象的末尾,位于最后一行之后
beforeFirst()   将指针移到此ResultSet对象的开头,位于第一行之前
close()         立即释放此ResultSet对象的数据库和JDBC资源
first()   将指针移到此ResultSet对象的第一行
getFloat(int columnIndex)  用float的形式检索ResultSet对象的当前行中指定列的值
getInt(int columnIndex)  用Int的形式检索ResultSet对象的当前行中指定列的值
getString(int columnIndex)   用String的形式检索ResultSet对象的当前行中指定列的值
next()   将指针从当前位置下移一行,常用while循环的迭代条件
absolute(int row)   将指针移到此 ResultSet对象的给定行编号
提示:里面的索引都是从1开始,不同于数组
   在执行deleteRow()方法时并不将操作同步到数据库,而是在关闭ResultSet结果集时同步到数据库
   建议每次操作数据库结束后,依次关闭ResultSet Statement Connection
     虽然直接关闭Statement实例也会关闭相关的ResultSet实例,并且JVM虚拟机的垃圾回收机制会定时清理缓存并关闭长时间不用的数据库连接,但是如果关闭不及时
     数据库连接达到一定数量,将严重影响数据库和计算机的运行速度,甚至瘫痪

6)JSP连接数据库操作
  A:安装好Mysql数据库,下载驱动包:mysql-connector-java-5.1.20-bin.jar,根据数据库的版本下载对应的驱动包
  B:把mysql-connector-java-5.1.20-bin.jar放到tomcat服务器的lib文件夹下
  C:使用jsp程序访问数据库时一定要导入的包:java.sql.*
  D:使用服务器自带的jar包以及JREjar包

时间: 2024-08-05 10:45:59

JSP--JDBC技术的相关文章

眼下最好的JSP分页技术

2005-08-24   来源:CSDN  作者:wanchao2001 前言     在使用数据库的过程中,不可避免的须要使用到分页的功能,但是JDBC的规范对此却没有非常好的解决.对于这个需求非常多朋友都有自己的解决方式,比方使用 Vector等集合类先保存取出的数据再分页.但这样的方法的可用性非常差,与JDBC本身的接口全然不同,对不同类型的字段的支持也不好.这里提供了一种与 JDBC兼容性非常好的方案.   JDBC和分页 Sun的JDBC规范的制定,有时非常让人哭笑不得,在JDBC1.

jsp分页技术

如果一张表的数据有非常多,页面就需要分页展示,但一次性从数据库中读取全部的数据会给服务器带来巨大压力.jsp分页技术的设计思想来源于"select * from employee limit ?,?"这条sql语句,第一个"?"指查询的起始位置,第二个"?"代表偏移量.页面需要展示多少数据,每次就从服务器读取多少数据,大大减轻了服务器的压力.下面开始实现一个javaweb的demo帮助大家更好的理解. 一.准备工作: MySQL中创建一张用例表

利用JSP编程技术实现一个简单的购物车程序

实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP中数据库编程方法: 二.实验要求 : 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来处理用户提交的登录信息,如果用户名为本小组成员的名字且密码为对应的学号时,采用J

使用JDBC技术连接数据库(附源码)--JAVA的简单应用

一.创建数据库(以mysql数据库为例) mysql数据库的下载安装与配置 -可参考博主之前的随笔:Windows平台下搭建MySQL数据库 创建wxb数据库-create database wxb; 使用-show databases语句可查看mysql数据库下的所有数据库名 二.使用JDBC技术连接MySQL数据库 JAVA=============JDBC===============DB 高级编程语言              结构化查询语言 JDBC: Java Database Co

初涉JSP+JDBC 基于SQL2008的登陆验证程序

简单的以代码的形式纪念一下,因为现在还没有解决SQL2008驱动的问题,并且有好多东西要学,所以日后会有更新~ 所安装的软件有:SQL2008,eclipse,tomcat,JDK,涉及环境配置.等等,安装数据库感受最深,虽然网上有教程,但是实际操作起来,真心感觉这才是真正的安装软件. 设计关键: 关键在于验证页面,在该页面中必须:数据库的连接操作,数据库记录的查询操作 提交界面代码 <%@ page language="java"  pageEncoding="GB2

Javaweb学习笔记7—JDBC技术

今天来讲javaweb的第7阶段学习. JDBC技术,关于JDBC本篇博客只介绍了它的一部分,后面博客会更加深入探讨. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一,概述: 1,定义 各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现.SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了J

JAVA数据库编程(JDBC技术)-入门笔记

本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学习一下.我现在很迫不及待用JAVA想来实现以下对数据库的增删改查.想实现就来看Java是怎么操作数据库的,回想下.Net里你可能会配置web.Config,或者你去写一些DBhelper类然后调用里面的自己定义的一些增删改查的方法,更或者你去配一些数据控件等等往往发现操作基本都是一体化的简单.现在面

jsp2.0+中的标签文件,JSP Fragment技术

刚进新公司不久,今天在看到项目中用到了.tag文件.刚開始我还以为这个是第三方类似freemarker的模板技术.问了下项目组的其它人员,原来这是jsp2.0以来就有的JSP Fragment技术.曾经做项目的时候从来没实用这种方式,要公用就用用jsp中的include和jsp:include的方式.事实上JSP Fragment也有include的作用,可是它更像第三方sitemesh技术.用于网页布局和修饰,能够将网页的内容和页面的结构分离.从而达到页面结构共享的目的. 以下的样例来说明怎么

综合学生信息管理系统(JSP+JDBC)

原创 通过JSP+JDBC制作一个简单的操作数据库中表信息的系统. 总体界面如下,一共有5个功能块. 功能一:列出全部学生 功能二:按条件查询学生 功能三:新添加学生 功能四:按条件删除学生 功能五:按条件修改学生 JSP页面介绍(连接的数据名称为DB OF CWM,操作的表为Student): 综合数据库系统总页面.jsp -- 设计总体页面的框架 <%@ page language="java" contentType="text/html; charset=UTF

jsp 实栗 jsp + jdbc 登录

jsp 实栗 jsp + jdbc 实现登录 实现思路 一个表单页,输入用户登录和密码,然后信息提交到jsp页面进行验证,如果可以服务器跳转到登录成功页,失败,跳转到错误页 跳转的时候窗口的URL地址会发生变化 代码如下 编写登录代码 登录 <!DOCTYPE html> <html lang="zh_CN"> <head> <meta charset="UTF-8"> <title>登录</titl