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. 在Spring中使用异步事件实现同步事务

    结合Scala+Spring,我们将采取一个很简单的场景:下订单,然后发送一封电子邮件. 编制一个服务: @Serviceclass OrderService @Autowired() (orderD ...

  2. iOS 捕获系统外异常

    iOS 捕获系统外异常 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太 ...

  3. CF 61E 树状数组+离散化 求逆序数加强版 三个数逆序

    http://codeforces.com/problemset/problem/61/E 题意是求 i<j<k && a[i]>a[j]>a[k] 的对数 会 ...

  4. SQL Profile 总结(一)

    一.前提概述 在介绍SQL Profile之前,不得不说的一个工具就是SQL Tuning Advisor:这个工具是从Oracle 10g開始引入,它的任务就是分析一个指定的SQL语句,并建议怎样使 ...

  5. TypedArray和obtainStyledAttributes使用

    在编写Android自定义按钮示例基础上,如果要指定字体大小产生这样的效果: 其实是不需要自定义变量的,可以直接使用TextView的配置属性: <com.easymorse.textbutto ...

  6. OD: GS Bypasing via SEH / .data

    通过 SEH 绕过 GS 保护 GS 机制没对 SEH 提供保护,所以可心通过攻击异常来绕过 GS. 实验环境为: VMware : Windows sp4, 此版本无 SafeSEH 的影响 Vis ...

  7. windows server 2003 AD

    本文转载:http://www.cnblogs.com/zfanlong1314/admin/EditPosts.aspx?opt=1 今天教大家用windows server2003系统建立Acti ...

  8. ArrayList 练习

    ArrayList list = new ArrayList(); Random rd = new Random(); ; i <; i++) { , ); //是否包含当前数字 if (!li ...

  9. 微信支付:redirect_uri参数错误 的解决办法

    redirect_url参数错误: 报这个错误,说明你的公众号后台授权设置有问题(一般有两处) 一:检查授权目录 答:支付授权目录是网站发起请求的页面所在目录,并且必须是能通过url地址访问的(与真实 ...

  10. jQuery对下拉框、单选框、多选框的处理

    下拉框: //得到下拉菜单的选中项的文本(注意中间有空格) var cc1 = $(".formc select[@name='country'] option[@selected]&quo ...