Java 数据库连接(JDBC)的相关总结

Java 数据库连接(Java DataBase Connectivity,缩写JDBC)是官方(sun公司)定义的一套操作所有关系型数据库的规则(即接口)。
各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

一、JDBC API 概述

JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(下面的接口,需驱动程序提供者来具体实现):

  • DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。
  • Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求,返回相应的数据库连接(Connection)。
  • Connection:与数据库连接,负责与进行数据库间通讯,SQL执行、事务处理都是在某个特定Connection环境中进行的。
  • Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。
  • PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。
  • CallableStatement:用以调用数据库中的存储过程。
  • SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。

二、JDBC 和 数据库建立连接的过程

2.1、装载驱动程序

Java 程序和数据库建立连接,首先需要下载好对应数据库的驱动程序包,并放置在程序的依赖库中。
程序将依赖库中的驱动加载到程序中的方式非常简单,使用Class.forName()即可。

假如需要导入的驱动包为 mysql-connector-java-5.1.37-bin.jar,则装载驱动的方式:
Class.forName("com.mysql.jdbc.Driver");
在驱动程序的文档中会告诉你应该使用的类名。
在装载驱动的过程中,会执行驱动程序中的部分代码(静态代码块);实现驱动与 DriverManager的绑定。

static {
 try {
  java.sql.DriverManager.registerDriver(new Driver());
 } catch (SQLException E) {
  throw new RuntimeException("Can't register driver!");
 }
 }

注意:mysql5之后的驱动jar包可以省略注册驱动(forName)的步骤。Jar包中内置包含处理了此过程。

2.2、获取数据库连接

下一步就是用适当的驱动程序类与 DBMS 建立一个连接。
下列代码是一般的做法:

Connection con = DriverManager.getConnection(url,user,password);

方法:static Connection getConnection(String url, String user, String password)
说明:返回一个打开的连接,你可以使用此连接创建 JDBC statements 并发送 SQL 语句到数据库。
参数:
    * url:指定连接的路径;如:jdbc:mysql://localhost:3306/db3
    * user:用户名
    * password:密码

如果你装载的驱动程序识别了提供给 DriverManager.getConnection 的 JDBC URL ,那个驱动程序将根据 JDBC URL 建立一个到指定 DBMS 的连接。
正如名称所示,DriverManager 类在幕后为你管理建立连接的所有细节。
除非你是正在写驱动程序,你可能无需使用此类的其它任何方法,一般程序员需要在此类中直接使用的唯一方法是 DriverManager.getConnection。

2.2.1、Connection:数据库连接对象介绍

Connection 对象与数据库连接;负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。

  1. 产生用以执行SQL指令的 Statement、PreparedStatement 对象。
  2. 事务管理中:setAutoCommit(boolean autoCommit)开启事务、commit()提交事务、rollback()回滚事务。

2.3、创建 JDBC Statement 对象

Statement 是执行SQL 的对象;其用于把 SQL 语句发送到 DBMS。不同的SQL语句使用不同的 Statement 对象的方法,发送到 DBMS中。

Statement stmt = con.createStatement();

2.4、执行SQL 语句 (Statement对象方法使用)

不同的 SQL 语句需要使用不同的 Statement 对象方法。

  1. boolean execute(String sql):可以执行任意的sql(了解 )。
  2. int executeUpdate(String sql):执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句。
  3. ResultSet executeQuery(String sql):执行DQL(select)语句

其中 executeUpdate() 方法的返回值为影响的行数;可以通过这个影响的行数判断DML语句是否执行成功 ;返回值>0的则执行成功,反之,则失败。

执行DML语句

String sql = "insert into account values(null,'王五',3000)";
int count = stmt.executeUpdate(sql);//影响的行数

执行DQL语句

ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM student");
//如果有数据,rs.next()返回true
while(rs.next()){
System.out.println(rs.getString("user_name")+" 年龄:"+rs.getInt("age"));
}

2.4.1、ResultSet 结果集对象,封装查询结果

java.sql.ResultSet 接口表示一个数据库查询的结果集;一个ResultSet对象具有一个游标指向当前行的结果集。
最初,光标被置于第一行之前;调用 next() 方法将光标移动到下一行;当 ResultSet 对象没有下一行时,next() 方法返回 false。

一般使用方法:

while(rs.next()){
 //获取数据
 int id = rs.getInt(1);
 String name = rs.getString("name");
 double balance = rs.getDouble(3);
 System.out.println(id + "---" + name + "---" + balance);
}

getXxx(参数):获取数据
  * Xxx:代表数据类型如:int getInt(),String getString() ...
  * 参数:
      1. int:代表列的编号,从1开始   如: getString(1)
      2. String:代表列名称。 如: getDouble("balance")

2.5、释放资源

SQL 语句执行完成后,需要是否创建的资源对象。包括连接对象、Statement对象和ResultSet 对象等。

以上就是Java 数据库连接(JDBC)的相关总结的详细内容,更多关于Java 数据库连接(JDBC)的资料请关注我们其它相关文章!

(0)

相关推荐

  • JDBC数据库的使用操作总结

    JDBC是一组能够执行SQL语句的API 由于传统的数据库操作方式需要程序员掌握各个不同的数据库的API,极其不便 因此java定义了JDBC这一标准的接口和类,为程序员操作数据库提供了统一的方式 JDBC的操作方式比较单一,由五个流程组成: 1.通过数据库厂商提供的JDBC类库向DriverManager注册数据库驱动 2.使用DriverManager提供的getConnection()方法连接到数据库 3.通过数据库的连接对象的createStatement方法建立SQL语句对象 4.执行

  • JDBC连接Sql Server 2005总结

    1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载) <1>.Microsoft SQL server 2005 Express Edition 下载地址:http://download.microsoft.com/download/0/9/0/09020fab-d2c3-4a8c-b9e0-db53a7a30ae8/SQLEXPR_CHS.EXE <2>.SQL Server Management Studio 下载地址:http://www.micros

  • javaweb学习总结——使用JDBC处理MySQL大数据

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器.在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型,BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传.下载或者存放到一个数据库). 一.基本概念 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和

  • JDBC的扩展知识点总结

    一.数据库的事务 1.1 事务概述 事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态 事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式.当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来:要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态 为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一

  • JDBC用法小结

    本文实例总结了JDBC的用法.分享给大家供大家参考.具体分析如下: DriverManger:驱动管理器类 要操作数据库,必须先与数据库创建连接,得到连接对象 public static Connection getConnection(String url, String username,String password){} Connection:连接接口: 通过DriverManger类的getConnection方法,将获得连接对象,执行sql语句必须借助语句对象(Statement)

  • Java JDBC连接数据库常见操作总结

    本文实例总结了Java JDBC连接数据库常见操作.分享给大家供大家参考,具体如下: db.properties配置文件(MySql数据库) # db.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8 jdbc.username=root jdbc.password=123456 # param

  • Java中JDBC事务与JTA分布式事务总结与区别

    Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务.常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现.所以本文暂不讨论容器事务.本文主要介绍J2EE开发中两个比较基本的事务:JDBC事务和JTA事务. JDBC事务 JDBC的一切行为包括事务是基于一个Connection的,在JDBC中是通过Connection对象进行事务管理.在JDBC中,

  • JDBC连接mysql乱码异常问题处理总结

    前段时间学习JDBC,要连接mysql获取数据.按照老师的样例数据,要存一些名字之类的信息,用的都是英文名,我当时就不太想用英文,就把我室友的名字存了进去,嘿嘿,结果,出问题了. 连接数据库语句: static final String DB_URL = "jdbc:mysql://localhost/filemanagement"; 查询语句: private static final String theUserQuery = "SELECT name, password

  • 浅析JAVA常用JDBC连接数据库的方法总结

    一.JDBC连接DB2 复制代码 代码如下: Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");   String url="jdbc:db2://dburl:port/DBname"   cn = DriverManager.getConnection( url, sUsr, sPwd );  Class.forName("Com.ibm.db2.jdbc.net.DB2Driver"); Stri

  • java开发中基于JDBC连接数据库实例总结

    本文实例讲述了java开发中基于JDBC连接数据库的方法.分享给大家供大家参考,具体如下: 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }c

  • 使用JDBC连接Mysql数据库会出现的问题总结

    首先理清几个概念: JDBC:java数据库连接,是Orical公司的指定的一套规范接口 java数据库驱动:JDBC的实现类,由相应的数据库厂商提供,可以通过驱动去操作不同的数据库 在java-数据库这里,jdbc-api中的所有包都是java.sql或者javax.sql JDBC的操作步骤: (1)建立数据库和表 (2)创建项目 (3)导入驱动jar包 (4)注册驱动 Class.forName("com.mysql.jdbc.Driver"); (5)获取连接 Connecti

  • JDBC常用接口总结

    本文主要向大家介绍JDBC常用的接口都有哪些,下面来看看具体内容. 1.Driver接口 对于每一个数据库驱动程序都必须实现Driver接口,在编写程序时,当需要连接数据库的时候就需要装载由数据库厂商提供的数据库驱动程序,装载的方式如下: Class.forname("jdbc.driver_class_name"); 同时要注意的就是在使用Class.forname时首先需要引入java.sql包.下面这段代码就是装载SQL Server数据库驱动程序的一段代码: import ja

随机推荐