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. Java和C++的不同

    现在一边继续深入C++,一边学习Java,为了学习得更加透彻,不断比较两者之间的不同,以后会慢慢继续增加. 1.在多态的实现上,C++需要利用关键字virtual,而Java不需要,因为在Java中, ...

  2. 浏览器格式化JSON输出,thinkphp

    1 //编写类方法用$this->ajaxReturn()返回数据 2 public function index(){ 3 $user = M('User'); 5 $data = $user ...

  3. Solr集成IK中文分词器

    1.将IKAnalyzer-2012-4x.jar拷贝到example\solr-webapp\webapp\WEB-INF\lib下: 2.在schema.xml文件中添加fieldType: &l ...

  4. Maven初识

    说说maven,我们每做一个项目,都要往lib目录扔很多jar包,spring的啊hibernate的啊apache的啊等等,这样就会导致很多包不知从哪个角落下载回来的,名称千奇百怪,版本也不明,项目 ...

  5. Spinner( 微调) 组件

    本节课重点了解 EasyUI 中 Spinner(微调)组件的使用方法,这个组件依赖于ValidateBox(验证框)组件. 一. 加载方式Spinner(微调)组件是其他两款高级微调组件的基础组件, ...

  6. C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口。

    最近接触了C#Socket网络编程,试着做了试试(*^__^*) 实现多个客户端和服务端互相发送消息 发送文件抖动窗口功能 服务端: using System; using System.Collec ...

  7. 网页JavaScript

    用法. JavaScript一般用于 head , body , </html> 之后. 格式<script language="javascript"> ...

  8. OD: Memory Attach Technology - Off by One, Virtual Function in C++ & Heap Spray

    Off by One 根据 Halvar Flake 在“Third Generation Exploitation”中的描述,漏洞利用技术依攻击难度从小到大分为三类: . 基础的栈溢出利用,可以利用 ...

  9. JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)

    JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference

  10. NHibernate之映射文件配置说明(转载2)

    六.鉴别器   在"一棵对象继承树对应一个表"的策略中,<discriminator>元素是必需的, 它定义了表的鉴别器字段. 鉴别器字段包含标志值,用于告知持久化层应 ...