Java程序连接数据库的常用的类和接口介绍_java

编写访问数据库的Java程序还需要几个重要的类和接口。
DriverManager类

DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:

  static Connection getConnection(String url,String username,String password)

指定数据的URL用户名和密码创建数据库连接对象。url的语法格式是:
    jdbc:<数据库的连接机制>:<ODBC数据库名>。
Connection类

Connection类是java.sql包中用于处理与特定数据库连接的类。Connection对象是用来表示数据库连接的对象,Java程序对数据库的操作都在这种对象上进行。Connection类的主要方法有:

  • Statement createStatement():创建一个Statement对象。
  • Statement createStatement(int resultSetType,int resultSetConcurrency):创建一个Statement对象,生成具有特定类型的结果集。
  • void commit():提交对数据库的改动并释放当前持有的数据库的锁。
  • void rollback():回滚当前事务中的所有改动并释放当前连接持有的数据库的锁。
  • String getCatalog():获得连接对象的当前目录。
  • boolean isClose():判断连接是否已关闭。
  • boolean isReadOnly():判断连接是否为只读模式。
  • void setReadOnly():设置连接为只读模式。
  • void close():释放连接对象的数据库和JDBC资源。

Statement类

Statement类是java.sql包中用于在指定的连接中处理SQL语句的类。数据库编程的要点是在程序中嵌入SQL命令。程序需要声明和创建连接数据库的Connection对象,并让该对象连接数据库。调用类DriverManager的静态方法getConnection()获得Connection对象,实现程序与数据库的连。然后,用Statement类声明SQL语句对象,并调用Connection对象的createStatement()方法,创建SQL语句对象。例如,以下代码创建语句对象sql:

  Statement sql = null;
  try{
    sql = con.createStatement();
  }catch(SQLException e){}

ResultSet类

有了SQL语句对象后,调用语句对象的方法executeQuery()执行SQL查询,并将查询结果存放在一个用ResultSet类声明的对象中,例如,以下代码读取学生成绩表存于rs 对象中:

  ResultSet rs = sql.executeQuery(“SELECT * FROM ksInfo”);

ResultSet对象实际上是一个由查询结果数据的表,是一个管式数据集,由统一形式的数据行组成,一行对应一条查询记录。在ResultSet对象中隐含着一个游标,一次只能获得游标当前所指的数据行,用next方法可取下一个数据行。用数据行的字段(列)名称或位置索引(自1开始)调用形如getXXX()方法获得记录的字段植 。以下是ResultSet对象的部分方法:

  • byte getByte(int columnIndex):返回指定字段的字节值。
  • Date getDate(int columnIndex):返回指定字段的日期值。
  • float getFloat(int columnIndex):返回指定字段的浮点值。
  • int getInt(int columnIndex):返回指定字段的整数值。
  • String getString(int columnIndex):返回指定字段的字符串值。
  • double getDouble(String columnName):返回指定字段的双精度值。
  • long getLong(String columnName):返回指定字段的long型整值。
  • boolean next():返回是否还有下一字段。

以上方法中的columnIndex是位置索引,用于指定字段,columnName是字段名。

用户需要在查询结果集上浏览,或前后移动、或显示结果集的指定记录,这称为可滚动结果集。程序要获得一个可滚动结果集,只要在获得SQL的语句对象时,增加指定结果集的两个参数即可。例如,以下代码:

  Statement stmt = con.createStatement(type,concurrency);
  ResultSet rs = stmt.executeQuery(SQL语句)

语句对象stmt的SQL查询就能得到相应类型的结果集。
int 型参数type决定可滚动集的滚动方式:

  • ResultSet.TYPE_FORWORD_ONLY,结果集的游标只能向下滚动。
  • ResultSet.TYPE_SCROLL_INSENSITIVE,游标可上下移动,当数据库变化时,当前结果集不变。
  • ResultSet. TYPE_SCROLL_SENSITIVE,游标可上下移动,当数据库变化时,当前结果集同步改变。

int 型参数concurrency决定数据库是否与可滚动集同步更新:

  • ResultSet.CONCUR_READ_ONLY,不能用结果集更新数据库中的表。
  • ResultSet.CONCUR_UPDATETABLE,能用结果集更新数据库中的表。

例如,以下代码利用连接对象connect,创建Statement对象stmt,指定结果集可滚动,并以只读方式读数据库:

  stmt = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  ResultSet.CONCUR_READ_ONLY);

可滚动集上另外一些常用的方法如下:

  • boolean previous():将游标向上移动,当移到结果集的第一行时,返回false。
  • void beforeFirst():将游标移结果集的第一行之前。
  • void afterLast():将游标移到结果集的最后一行之后。
  • void first():将游标移到第一行。
  • void last():将游标移到最后一行。
  • boolean isAfterLast():判游标是否在最后一行之后。
  • boolean isBeforeFirst():判游标是否在第一行之前。
  • boolean isLast():判游标是否在最后一行。
  • boolean isFirst():判游标是否在第一行。
  • int getRow():获取当前所指的行(行号自1开始编号,结果集空,返回0)。
  • boolean absolute(int row):将游标移到row行。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
数据库
织梦常用数据库表介绍、国内外常用数据库介绍、java常用数据库、java 数据库接口、java常用的数据库,以便于您获取更多的相关知识。

时间: 2024-08-02 01:54:03

Java程序连接数据库的常用的类和接口介绍_java的相关文章

storm db-storm对数据库操作的相关类和接口

问题描述 storm对数据库操作的相关类和接口 可否详细讲解一下Storm中关于对数据库的操作的接口,类之间的作用,继承和调用的时机..顺便推荐几本 有用的博客和数据..谢谢了.网上查找的资料都是大同小异...哎 解决方案 http://www.csdn.net/article/2012-12-24/2813117-storm-realtime-big-data-analysis

java属性文件properties常用操作工具类

对于java.util.Properties类,通常我们只需要做到以下3个学习目标: 1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 3.掌握相对路径,能正确书写一个properties文件的相对路径. 而在平时的工作中,会遇到各种各样的需求,以下是一个封装. package com.herman.util; import java.io.File; import java.

java 利用java反射机制动态加载类的简单实现_java

如下所示: ////////////////// Load.java package org.bromon.reflect; import java.util.ArrayList; import java.util.List; public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<

利用java反射机制实现自动调用类的简单方法_java

1. 新建TestServlet类 package com.yanek.test; import java.io.IOException; import java.lang.reflect.Method; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.ht

Java中继承、多态、重载和重写介绍_java

什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型.继承是面向对象的三个基本特征--封装.继承.多态的其中之一,我们在使用JAVA时编写的每一个类都是在继承,因为在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类.超类),如果

Java设计模式之单态模式(Singleton模式)介绍_java

定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在. 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作. 还有,singleton能够被状态化:这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况下方便的做到. 另外方面,Singleton也能够

Java设计模式之外观模式(Facade模式)介绍_java

外观模式(Facade)的定义:为子系统中的一组接口提供一个一致的界面. Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作: 复制代码 代码如下: public class DBCompare { Connection conn = null; PreparedStatement prep = null; ResultSet rset = null; try { Class.forName( "<driver>" ).newInstance(); co

Java工作利器之常用工具类(四)——Json工具类,使用正则支持xml与json互转

看到这个题目是不是大部分人都不屑一顾,的确基本上每个java程序猿都写过json工具类,也有很多人都使用json-lib.jar封装过类似的功能,但是我这里使用了正则来支持xml与json的互转,减少了jar包的引入.基本上满足了需求.当然如果你需要更强大的功能,还是最好使用json-lib来实现. 主要看一下工具类中的转换json和转换成xml的方法吧. 1. xml转json 具体就不多说了,我是采用的笨方法,多次使用正则进行替换的.比较好的一点儿是支持xml元素属性.如果xml节点有属性会

Java工作利器之常用工具类(三)——字符串工具类-智能截取

前两篇博文简单分享了一下数字工具类,现在说说字符串工具类. 相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说"截取整数第二个到倒数第二个"的字符串.你是否还需要自己写str.substring(1,str.length()-2).如果是的话,请继续往下看吧.暂时还未见过可以反向截取字符串的.一般都是substring(str, start, end)或者substring(str, len);而这里的参数都必须是正数,否则就会报错.所以为了改善