`
johnnycmj
  • 浏览: 36774 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

14、JDBC数据库编程

 
阅读更多

14、JDBC数据库编程

14.1、为什么需要JDBC

当前所有的B/S系统无一不和数据库之间有交互

JDBC(Java Database Connectivity)是一种可用于执行SQL语句的 Java API

JDBC的应用模型如下图所示:



 14.2、JDBC驱动

JDBC 驱动的4种类型

TYPE 1: JDBC-ODBC桥驱动程序

适用于快速的原型系统,没有提供JDBC驱动的数据库如Access

TYPE 2: Native-API驱动程序

利用开发商提供的本地库来直接与数据库通信。比Type1性能略好

TYPE 3: JDBC通过网络的纯Java驱动程序

具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的

TYPE 4: 原生协议以及纯Java驱动程序

最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力

14.3、JDBC实现以下目标

通过使用SQL语句,程序员可以利用java语言开发访问数据库的应用。

数据库供应商和数据库工具开发商可以提供底层的驱动程序。因此他们有能力优化各自的数据库产品的驱动程序。

14.4、JDBC的工作原理

JDBC API 供程序员调用的类和接口被包装在java.sql包中如:

DriverManager类

Connection接口

Statement接口

ResultSet接口

DriverManager 

作用:管理不同的JDBC驱动

JDBC驱动

作用:负责连接各种不同的数据库

JDBC API类和接口均在Java.sql和javax.sql程序包中提供。

JDBC API中常使用的类和接口是:

DriverManager 类:为数据库加载驱动程序。

驱动程序接口:提供一个数据库驱动程序。所有的JDBC驱动程序类必须执行驱动程序接口。

连接接口: 使你可以建立Java应用程序与数据库之间的连接。

语句接口:使你可以执行SQL语句。

ResultSet 接口:提供从数据库检索的信息。

SQLException 类:提供与数据库互动时发生的异常的有关信息。



 14.5、JDBC接口类和对象

DriverManager类

Class.forName() 显式加载并注册驱动程序类

驱动程序被加载后就出现在DriverManager的驱动程序列表中,并可用于创建连接

Connection对象

建立连接

DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);

JDBC URL

jdbc:< 子协议 >:< 子名称 > 

如:jdbc:mysql://localhost:3306/test

发送SQL语句

Statement

PreparedStatement

Statement对象

创建Statement对象

Statement stmt = conn.createStatement();

使用Statement对象执行语句

ResultSet executeQuery()参数是查询语句(select)

Int executeUpdate()参数是DML或DDL语句(insert, update, delete or DDL)

boolean execute()执行可能返回多种结果的语句(任何sql)

ResultSet getResultSet() 获取当前的结果集

int getUpdateCount() 以更新计数的形式获取当前结果;如果结果为 ResultSet 对象或没有更多结果,则返回 -1。

关闭Statement对象

作为一种良好的编程风格,应在不需要的时候显式关闭他们,stmt.close()

ResultSet对象

ResultSet对象又称结果集

行和光标

初始光标停在第一行之前,rs.next() 会使光标向下移一行列

resultSet中的getXxx()方法提供了对当前行某列值的访问

getXxx(String 列名) 列名不区分大小写

getXxx(int 列编号) 编号从 1 开始

 

14.6、JDBC访问数据库的基本步骤

①注册JDBC驱动程序;

注册驱动程序有三种方式:

JAVA规范中明确规定:所有的驱动程序必须在静态初始化代码块中将驱动注册到驱动程序管理器中。

方式一:Class.forName(“oracle.jdbc.driver.OracleDriver”);

 

方式二:Driver drv = new oracle.jdbc.driver.OracleDriver();

 DriverManager.registerDriver(drv);

方式三:编译时在虚拟机中加载驱动

javac –Djdbc.drivers = oracle.jdbc.driver.OracleDriver xxx.java

java –D jdbc.drivers=驱动全名 类名

使用系统属性名,加载驱动 -D表示为系统属性赋值

附?: mysql的Driver的全名com.mysql.jdbc.Driver                 

SQLServer的Driver的全名com.microsoft.jdbc.sqlserver.SQLServerDriver

②建立到DB连接;

conn=DriverManager.getConnection(“jdbc:oracle:thin:@192.168.0.1:1521:test”,  ” User”,” Pasword”);

IP地址及端口号和数据库实例名

用户名密码码

 

Connection连接是通过DriverManager的静态方法getConnection(.....)来得到的,这个方法的实质是把参数传到实际的Driver中的connect()方法中来获得数据库连接的。

Oracle URL的格式:

jdbc:oracle:thin:(协议)@XXX.XXX.X.XXX:XXXX(IP地址及端口号):XXXXXXX(所使用的库名)

MySql URL的写法    例: jdbc:mysql://192.168.0.1:3306/test

 

③获得Statement对象;

stat = conn.createStatement();

 

④通过Statement执行Sql语句;

sta.executeQuery(String sql);返回一个查询结果集。

sta.executeUpdate(String sql);返回值为int型,表示影响记录的条数。

将sql语句通过连接发送到数据库中执行,以实现对数据库的操作。

 

⑤处理结果(有的话);

使用Connection对象获得一个Statement,Statement中的executeQuery(String sql) 方法可以使用select语句查询,并且返回一个结果集 ResultSet通过遍历这个结果集,可以获得select语句的查寻结果,ResultSet的next()方法会操作一个游标从第一条记录的前面开始读取,直到最后一条记录。executeUpdate(String sql) 方法用于执行DDL和DML语句,比如可以update,delete操作。

只有执行select语句才有结果集返回。

 

⑥与数据库断开连接。

关闭数据库连接(释放资源)  调用.close()

rs.close();            sta.close();              con.close();

ResultSet  Statement  Connection是依次依赖的。

注意:要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和ResultSet是需要连接时才可以使用的,所以在使用结束之后有可能其它的Statement还需要连接,所以不能现关闭Connection。


 14.7、实例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;



public class JDBCTest {
	
	public static final String DB_DRIVER = "com.mysql.jdbc.Driver";
	public static final String DB_URL = "jdbc:mysql://localhost:3306/test";
	public static final String DB_USERNAME = "root";
	public static final String DB_PASSWORD = "root";
	
	public static void main(String[] args){
		
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
		try{
			//1、装载JDBC驱动
			Class.forName(DB_DRIVER);
			//2、获取数据库连接
			conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
			//3、创建数据库语句
			String sql = "seletc * from users";
			stmt = conn.createStatement();
			//执行数据库操作
			rs = stmt.executeQuery(sql);
			//从结果集中获取数据
			while(rs.next()){
				int id = rs.getInt("id");
				String name = rs.getString("name");
				int age = rs.getInt("age");
				System.out.println("id = " + id +" name = " + name +" age="+age);
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			//6、释放资源
			if(rs != null){
				try{
					rs.close();
				}catch(SQLException e){
					e.printStackTrace();
				}
			}
			
			if(stmt != null){
				try{
					stmt.close();
				}catch(SQLException e){
					e.printStackTrace();
				}
			}
			
			if(conn != null){
				try{
					conn.close();
				}catch(SQLException e){
					e.printStackTrace();
				}
			}
		}
	}
}

 14.8、JDBC连接几种常见数据库



 
  • 大小: 10.3 KB
  • 大小: 17.7 KB
  • 大小: 17.6 KB
  • 大小: 23.1 KB
  • 大小: 22.1 KB
分享到:
评论

相关推荐

    JDBC数据库编程实验

    (1)熟练掌握JDBC操作数据库的整个过程; (2)利用预处理语句操作数据库; (3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,...

    数据库原理实验六ODBC和JDBC数据库编程实用.pdf

    数据库原理实验六ODBC和JDBC数据库编程实用 本文档主要介绍了数据库原理实验六中的ODBC和JDBC数据库编程实用,实验报告题目包括ODBC配置、ODBC编程、JDBC实现对数据库的连接、查询、插入、修改和删除等内容。 一、...

    JDBC数据库编程JDBC数据库编程.ppt

    【JDBC数据库编程】 JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的关键技术。它是Sun Microsystems公司提供的一套API,允许Java程序通过SQL语句与各种类型的数据库进行交互,包括Oracle、...

    IT—JDBC数据库编程的研究

    ### IT—JDBC数据库编程的研究 #### 摘要与引言 在当前信息技术领域,尤其是Web应用程序的设计与开发过程中,提升数据库响应性能对于优化应用性能至关重要。随着Web应用程序从简单的信息展示平台向复杂的业务处理...

    jdbc.rar_jdbc数据库编程

    在"jdbc.rar_jdbc数据库编程"这个压缩包中,我们可以预期找到一些关于使用JDBC进行数据库编程的资料。下面我们将深入探讨JDBC的关键概念和步骤,这对于初学者来说是非常有益的。 1. **JDBC驱动程序**:JDBC驱动是...

    Java_JDBC数据库编程技术与实例

    ### Java JDBC数据库编程技术详解 #### 一、引言 在现代软件开发中,数据库扮演着极其重要的角色,尤其在商业应用领域。无论是简单的数据存储还是复杂的数据处理,数据库都是必不可少的一部分。Java作为一门广泛...

    《JDBC API数据库编程实材作教材》[PDF]

    这是一本关于JDBC API数据库编程的书,主要介绍Java程序设计基础、 SQL基础知识、JDBC(Java数据库连接)应用、接口和类,以及如何在JSP和Servlet中使用JDBC,并以完整的实例程序说明 JDBC API(应用程序编程接口)...

    第11章JDBC数据库编程.doc

    第11章JDBC数据库编程

    JDBC API数据库编程实作教材

    **JDBC API数据库编程实作教材** 在Java开发中,JDBC(Java Database Connectivity)是连接Java应用程序与各种类型数据库的重要桥梁。它提供了一组接口和类,使得开发者能够使用标准的Java代码来访问和操作数据库。...

    java实验实验报告 add 实验一:多线程/2.Runnable接口. 实验八:JDBC数据库编程二-存储过程

    实验八:JDBC数据库编程二——存储过程与函数 add 实验八:JDBC数据库编程二——存储过程与函数/2.addTwoNumAndReturn. 实验十:Socket编程 add 实验十:Socket编程/客户端代码client.java. 实验四:集合的...

    JDBC数据库编程

    JDBC数据库编程详细介绍,附有经典案例和练习题

    java编程JDBC数据库编程1数据库基础.docx

    【Java JDBC数据库编程1数据库基础】 本章主要介绍了数据库编程的基础知识,重点是Java通过JDBC与数据库的交互。首先,我们来看一下数据库的基本概念。 1. 数据库基础: - **4D数据(DATA)**:指的是存储在...

    JDBC数据库编程,通讯时间查询(mysql)

    **JDBC数据库编程,通讯时间查询(MySQL)** 在Java应用程序中,JDBC(Java Database Connectivity)是连接数据库的标准API,它允许Java程序与各种类型的数据库进行交互。本主题主要探讨如何利用JDBC来实现对MySQL...

    JDBC 3.0 数据库编程

    **JDBC 3.0 数据库编程** JDBC(Java Database Connectivity)是Java语言中用于与各种数据库交互的标准API,由Sun Microsystems开发并被Oracle公司继承。JDBC 3.0是该API的一个重要版本,它在JDBC 2.0的基础上进行...

    JDBC编程总结(包括各种数据库连接方法)

    总结而言,JDBC是Java数据库编程的基础,理解和掌握JDBC的原理和使用方法对于任何Java开发者来说都是必要的,特别是对于那些需要进行数据库操作的项目。同时,随着技术的发展,开发者也应该了解和考虑使用ORM框架以...

Global site tag (gtag.js) - Google Analytics