Java Web的数据库操作

一、JDBC技术

1、JDBC简介

JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与数据库系统之间假期了一座桥梁。

JDBC由一组用Java语言编写的类和接口组成,它对数据库的操作提供了基本方法,但由于数据库种类跟多且多有不同,所以对数据库的细节操作由数据库厂商进行实现,且厂商需要提供数据库的驱动程序,下图为Java程序与数据库相交互的示意图:

2、JDBC连接数据库的过程

l  下载驱动包

在JDK中,不包含数据库的驱动程序,使用JDBC操作数据库需要实现下载数据库厂商提供的驱动包,并导入到开发环境中。

l  注册数据库驱动

连接数据库前,需要将数据库厂商提供的数据库驱动注册到JDBC的驱动管理器中,一般是通过将数据库驱动类加载到JVM来实现的,例如连接MYSQL数据库:

Class.forName(“com.mysql.jdbc.Driver”);

l  构建数据库连接URL

URL由数据库厂商制定,不同数据库它的URL有所区别,但都符合一个基本的格式,即“JDBC协议+IP地址或域名+端口+数据库名称”,例如MYSQL数据库为”jdbc:mysql://localhost:8080/test”。

前两步中不同数据库有所差别,不同数据库连接请参考这篇文章:

http://blog.csdn.net/zhai56565/article/details/8959184

l  获取Connection对象

通过驱动管理器获得数据库的连接Connection,只有创建此对象后才可以对数据库进行操作,方法如下:

DriverManager.getConnection(url , username , password);

下面是一个完整的连接数据库的例子:

 try {

                     //加载数据库驱动,注册到去送管理器

                     Class.forName("com.mysql.jdbc.Driver");

                     String url = "jdbc:mysql://localhost:8080/test";

                     String username = "admin";

                     String password = "123456";

                     Connection conn = DriverManager.getConnection(url , username , password);

                     if (conn != null) 

                            System.out.println("数据库连接成功!");

                     else

                            System.out.println("数据库连接失败!");

                     //完成后记得关闭数据库连接

                     conn.close();

              } catch (ClassNotFoundException e) {

                     e.printStackTrace();

              } catch (SQLException e) {

                     e.printStackTrace();

              }

二、JDBC API

JDBC是Java程序操作数据库的标准,它由一组用Java语言编写的类和接口组成,Java通过JDBC可以对多种关系数据库进行统一访问。下面介绍主要类和接口的作用,详细方法请参考J2SE的API。

1、 Connection接口

与特定数据库的连接会话,只有获得特定数据库的连接对象才能访问数据库,操作数据库中的数据表、视图和存储过程等。

方法声明

说明

Close()

立即释放Connection对象的数据库连接占用的JDBC资源

Commit()

提交事务,并释放Connection对象当前持有的所有数据库锁

createStatement()

创建Statement对象来将SQL语句发送到数据库

PreparedStatement

将参数化的SQL语句预编译并存储在PreparedStatement对象中

2、DriverManager类

主要作用与用户及驱动程序之间,它是JDBC中的管理层,通过它可以管理数据库厂商提供的驱动程序,并建立应用程序与数据库之间的连接。

方法声明

说明

getConnection(String url)

根据指定数据库连接URL,建立Connection

getConnection(String url , Properties info)

根据指定数据库连接URL及数据库连接属性信息建立数据库连接Connection,参数info为数据库连接属性

getConnection(url,un,pwd)

根据指定数据库连接URL,用户名和密码连接数据库

getDrivers()

获取当前DriverManager中已加载的所有驱动程序

3、 Statement接口

Statement接口封装了执行SQL语句和获取查询接口的基本方法。

方法声明

说明

AddBatch(String sql)

将SQL语句添加到Statement对象的当前命令列表中,用于SQL命令的批处理

clearBatch()

清空Statement对喜爱那个的命令列表

Close()

立即释放Statement对象的数据库和JDBC资源,而不是等待该对象自动关闭时执行

Execute(String sql)

执行指定的SQL语句,若SQL返回结果,该方法返回true,否则返回false

executeBatch()

将一批SQL命令提交给数据库执行,返回更新计数组成的数据

executeQuery(String sql)

执行查询类型的sql语句,该方法返回查询所获取的结果集ResultSet

executeUpdate(String sql)

执行SQL语句中DML类型(insert、update、delete)的SQL语句,返回更新所影响的行数

getConnection()

获取生成Statement对喜爱那个的Connection对象

4、PreparedStatement接口

Statement接口封装了JDBC执行SQL语句的方法,但在实际开发过程中,SQL语句往往需要将程序中的变量做查询条件参数等。使用Statement接口进行操作过于繁琐且存在安全缺陷。而PreparedStatement接口继承与Statement接口,且对带有参数SQL语句的执行操作进行了扩展。应用于PreparedStatement接口中的SQL语句可以使用占位符”?”来代替SQL语句中的参数,然后再对其进行赋值。

方法声明

说明

setBinaryStream(int x , InputStream s)

将输入流s作为SQL语句中的参数值,x为参数位置索引

setBoolean(int x , Boolean b)

将布尔值b作为SQL语句中的参数值,x为参数位置索引

SetByte

……

setInt

……

等等。。。。。。

……

5、ResultSet接口

ResultSet对象封装了数据查询的结果集,它包含了符合SQL语句的所有行,针对Java中的数据类型提供了一套getXXX()的方法,通过这些方法可以获取每一行中的数据。ResultSet还提供了光标的功能,通过光标可以自由定位到某一行中的数据。

方法声明

说明

Absolute(int row)

光标移动到ReulstSet对象的给定行编号

afterLast()

光标移动到最后一行后,如果结果集中不包含任何行,则该方法无效

beforFirst()

立即释放ResultSet对喜爱那个的数据库和JDBC资源

deleteRow()

删除当前行

First()

光标移动到第一行

getString(String columnLable)

以String的方式获取ResultSet对象当前行中指定列的值,参数为列名称

getBinaryStream(String colunmLable)

你懂得

getInt(String columnLable)

你懂得

isClosed()

判断ResultSet对喜爱那个是否已关闭

Last()

移动到最后一行

Next()

移动到下一行,若新行无效则返回false

Previous()

移动到上一行,若新行无效则返回false

Java Web----Java Web的数据库操作(一)的更多相关文章

  1. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  2. Java常用工具类之数据库操作辅助类DBUtil.java

    package com.qushida.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.be ...

  3. java之Hibernate框架实现数据库操作

    之前我们用一个java类连接MySQL数据库实现了数据库的增删改查操作---------MySQL篇: 但是数据库种类之多,除了MySQL,还有Access.Oracle.DB2等等,而且每种数据库语 ...

  4. Java/C++实现模板方法模式---数据库操作

    对数据库的操作一般包括连接.打开.使用.关闭等步骤,在数据库操作模板类中我们定义了connDB().openDB().useDB().closeDB()四个方法分别对应这四个步骤.对于不同类型的数据库 ...

  5. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...

  6. PHP-Phalcon框架中的数据库操作

    > 本文描述了PHP-Phalcon框架中数据库操作方法,主要讨论Phalcon框架的Model组件中的操作方法.更详细的Model介绍请参考:官方文档 1. 连接数据库 在Phalcon框架中 ...

  7. tornado 数据库操作

    tornado是python的web框架,web程序开发中数据库操作是必须的. 安装: tornado的官方文档中提供的说明比较少,而且提供的模块中未找到数据库方面的模块,难道没有针对数据库操作进行封 ...

  8. Java Web的数据库操作(一)

    一.JDBC技术 1.JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与 ...

  9. Java Web----Java Web的数据库操作(二)

    Java Web的数据库操作 三.JDBC操作数据库 上一篇介绍了JDBC API,之后就可以通过API来操作数据库,实现对数据库的CRUD操作了. http://blog.csdn.net/zhai ...

随机推荐

  1. Oracle_Q&A_02

    Step02: Import SQL FILE Step02: QUESTION & ANSWER --1查询员工姓名和职位字数相等的员工 --2查询e_name以s结尾的员工(不用like) ...

  2. ubuntu dash

    缘由:写一些脚本放在/etc/rc.loca自动执行开机启动报错 fiail to start /etc/rc.local 查找资料 缘起:ubuntu在6.0后默认bash改为了dash  导致很多 ...

  3. Solr初步学习

    Solr采用Lucene搜索库为核心,提供全文索引和搜索开源企业平台,提供REST的HTTP/XML和JSON的API,如果你是Solr新手,那么就和我一起来入门吧!本教程以solr4.8作为测试环境 ...

  4. (转)最近研究xcodebuild批量打包的一些心得

    以前的时候只知道做安卓开发的兄弟挺辛苦的,不但开发的时候要适配一堆的机型,好不容易开发完了还要打一堆不同的包给不同的市场.没想到现在这些市场都开辟iOS市场,于是需要打一堆的包给不同的市场,面对暂时给 ...

  5. 【C#网络基础】C# get post请求

    using KTCommon.Helper; using KTCommon.LOG; using System; using System.Collections.Generic; using Sys ...

  6. 初学者使用IntellJ IDEA建立Struts2项目

    1.建立项目,打开IDEA,点击File——>new project,选择Java Module,点击Next 选中Web Application,Version选中3.0,选中create w ...

  7. 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果

    首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.)                搜狐客户端                               ...

  8. Android应用调试经常使用知识

    1.Android应用启动过程调试 1).进入设置-->辅助功能-->开发人员选项:假设没有打开开发人员模式.在拨号里面输入*#*#6961#*#*: 2).找到选择调试应用,打开选择你要 ...

  9. 玩转Win32开发(2):完整的开发流程

          上一篇中我给各位说了一般人认为C++中较为难的东西——指针.其实对于C++,难点当然不局限在指针这玩意儿上,还有一些有趣的概念,如模板类.虚基类.纯虚函数等,这些都是概念性的东西,几乎每一 ...

  10. 2:numpy---ndarray

    ndarray即是多维数组[n dimension array] 一:创建ndarray 有好几种创建数组的方法. 例如,你可以使用 array 函数从常规的Python列表和元组创造数组.所创建的数 ...