`

Java的JDBC编程步骤

 
阅读更多
JDBC编程的步骤有以下几步:
1、 加载JDBC驱动,利用Java的反射机制
2、 通过DriverManager获取数据库连接,即调用静态工厂方法创建Connection对象
3、 通过Connection对象创建Statement对象
4、 执行SQL语句
5、 操作SQL语句返回的结果集
6、 关闭数据库资源

下面详细说明每一步的具体操作。
1、 加载JDBC驱动,利用Java的反射机制
Class.forName(“数据库厂商提供的JDBC驱动的Driver全限定类名”);
Oracle数据库驱动的Driver全限定类名为“oracle.jdbc.driver.OracleDriver”
MySQL数据库驱动的Driver全限定类名为“com.mysql.jdbc.Driver”

2、 通过DriverManager获取数据库连接,即调用静态工厂方法创建Connection对象
DriverManager类提供了三个重载的静态工厂方法可以创建Connection对象
Connection getConnection(String url)
Connection getConnection(String url, Properties info)
Connection getConnection(String url, String user, String password)
MySQL的url写法如下:
jdbc:mysql://hostname:port/databasename
Oracle的url写法如下:
jdbc:oracle:thin:@hostname:port:databasename

3、 通过Connection对象创建Statement对象
Connection类提供了创建三种类型Statement对象的实例工厂方法,每种类型的方法均有几个参数不同的重载方法。
Statement createStatement()
创建Statement 对象,Statement接口提供基本执行SQL语句的能力。
PreparedStatement prepareStatement(String sql)
创建PreparedStatement对象,PreparedStatement接口继承了Statement接口,提供SQL语句接受输入参数的能力。
CallableStatement prepareCall(String sql)
创建CallableStatement对象,CallableStatement接口继承了PreparedStatement接口,提供执行存储过程的能力。

4、 执行SQL语句
Statement类提供了执行SQL语句的三种类型的方法。
boolean execute(String sql)
可执行任意SQL语句,并返回是否执行成功,该方法有多个重载方法。
ResultSet executeQuery(String sql)
可执行SQL查询语句,并返回查询结果集。
int executeUpdate(String sql)
执行给定 SQL 语句,当该语句为 INSERT、UPDATE 或 DELETE 语句时,返回SQL语句改变行数,当该语句为SQL DDL 语句,返回0。该方法有多个重载方法。

5、 操作SQL语句返回的结果集
第4步中执行SQL查询语句时获得的ResultSet对象有两种类型的方法。
1) 移动ResultSet记录指针的方法
boolean absolute(int row)
将光标移动到此 ResultSet 对象的给定行编号。
void afterLast()
将光标移动到此 ResultSet 对象的末尾,正好位于最后一行之后。
void beforeFirst()
将光标移动到此 ResultSet 对象的开头,正好位于第一行之前。
boolean first()
将光标移动到此 ResultSet 对象的第一行。
boolean last()
将光标移动到此 ResultSet 对象的最后一行。
boolean next()
将光标从当前位置向前移一行。
boolean previous()
将光标移动到此 ResultSet 对象的上一行。
2) 获取当前记录指针指定列的方法
getXXX(int columnIndex)
根据指定第columnIndex列获取当前记录指针行对应的值
getXXX(String columnName)
根据指定columnIndex列名获取当前记录指针对应的值

6、 关闭数据库资源
关闭数据库资源分为三步,调用ResultSet、Statement和Connection对应的close()方法
1) 若执行了SQL查询语句,需要关闭ResultSet对象(不是查询语句没有打开ResultSet则没有此步骤)
2) 关闭Statement对象
3) 关闭Connection对象

以上步骤用UML图表示如下



下面按照这些步骤实现JDBC编程,以Oracle为例
安装oracle11gR2参考:
Redhat/CentOS下安装Oracle11gR2记录:http://jisonami.iteye.com/blog/2288377
win-server2008-r2安装oracle11gR2:http://jisonami.iteye.com/blog/2288406
oracle11gR2创建用户和表空间记录:http://jisonami.iteye.com/blog/2288407

现在假设有一个t_user的表,假设我们的连接数据库的信息如下:
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.75.130:1521:orcl
user=jison
pass=jison

我们的业务逻辑是要注册一个用户,那么,我们可以这样写这样一个方法
public boolean save(User user) throws SQLException{
                String id = UUID.randomUUID().toString().replace("-", "");
		user.setId(id);
                String driver = "oracle.jdbc.driver.OracleDriver";
                String url = "jdbc:oracle:thin:@192.168.75.130:1521:orcl";
                String user = "jison";
                String pass = "jison";
                Class.forName(driver);
		Connection conn = DriverManager.getConnection(url, user, pass);
		String sql = "insert into t_user(id, name, password) values(?, ?, ?)";
		PreparedStatement preStmt = conn.prepareStatement(sql);
		preStmt.setString(1, user.getId());
		preStmt.setString(2, user.getName());
		preStmt.setString(3, user.getPassword());
		int rowChange = preStmt.executeUpdate();
		preStmt.close();
		conn.close();
		if(rowChange != 0){
			return true;
		}
		return false;
	}


上面用到一个User类
public class User {
	private String id;
	private String name;
	private String password;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}


对于上面的配置信息,我们可以简单的封装在一个Java的Properties文件,而连接数据库时因为加载驱动只需要进行一次,那么我们将其移到静态代码块里。修改后的代码如下:

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.75.130:1521:orcl
user=jison
pass=jison


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.UUID;

import org.jisonami.entity.User;
import org.jisonami.sql.DBUtils;

public class UserService {
static Properties properties = new Properties();
	static {
		try {
			properties.load(UserService .class.getClassLoader().getResourceAsStream("DBConfig.properties"));
			Class.forName(properties.getProperty("driver"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection() throws SQLException{
		return DriverManager.getConnection(properties.getProperty("url"), 
				properties.getProperty("user"),
				properties.getProperty("pass"));
	}
	public boolean save(User user) throws SQLException{
		user.setId(generateId());
		Connection conn = UserService.getConnection();
		String sql = "insert into t_user(id, name, password) values(?, ?, ?)";
		PreparedStatement preStmt = conn.prepareStatement(sql);
		preStmt.setString(1, user.getId());
		preStmt.setString(2, user.getName());
		preStmt.setString(3, user.getPassword());
		int rowChange = preStmt.executeUpdate();
		preStmt.close();
		conn.close();
		if(rowChange != 0){
			return true;
		}
		return false;
	}
	private static String generateId(){
		return UUID.randomUUID().toString().replace("-", "");
	}
}
  • 大小: 58.3 KB
分享到:
评论

相关推荐

    Java JDBC编程总结

    #### 二、JDBC编程步骤详解 JDBC编程的基本步骤如下: 1. **创建数据库URL** 首先,我们需要创建一个特定的数据库URL来建立与数据库的连接。URL包含了数据库类型、端口、驱动类型、连接方式、数据库服务器的IP...

    Java jdbc编程驱动(全)

    本资源“Java jdbc编程驱动(全)”包含了多种主流数据库系统的JDBC驱动,包括MySQL、Oracle 10g以及SQL Server,这使得Java开发者能够在不同的数据库环境下方便地进行开发。 1. **MySQL JDBC驱动**:MySQL的JDBC...

    JDBC编程!java中的数据库连接!源代码!适合初学者!

    JDBC编程的主要步骤如下: 1. 加载驱动:在程序中使用Class.forName()方法加载数据库对应的驱动类。 2. 创建连接:通过DriverManager.getConnection()方法创建与数据库的连接。 3. 创建Statement对象:通过...

    jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip

    在Java中,JDBC的使用步骤大致如下: 1. **加载驱动**:使用`Class.forName()`方法加载数据库驱动,如`Class.forName("com.mysql.jdbc.Driver")`对于MySQL。 2. **建立连接**:使用`DriverManager.getConnection()`...

    Java JDBC学生数据管理系统

    在Java程序中,使用JDBC的基本步骤如下: 1. 加载数据库驱动:使用Class.forName()方法加载对应的JDBC驱动。 2. 获取数据库连接:通过DriverManager.getConnection()方法,提供数据库URL、用户名和密码来建立连接。...

    JAVA jdbc-mysql练习

    Java JDBC (Java Database Connectivity) 是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版的一部分,允许开发人员在不依赖特定数据库API的情况下,编写可移植的数据库应用程序。JDBC提供了...

    JDBC开发的接口和JDBC编程步骤

    2. **JDBC编程步骤**: - **注册加载JDBC驱动**:这一步是让JVM知道要使用哪个数据库驱动。有三种方式: - 方法一:`Class.forName(DriverName)`,其中`DriverName`是驱动的全限定类名。 - 方法二:`Class.for...

    Java JDBC规范和用例

    #### 六、JDBC编程步骤 1. **注册驱动**:通常通过`Class.forName()`或`DriverManager.registerDriver()`完成驱动的注册。 2. **建立连接**:通过`DriverManager.getConnection()`方法建立数据库连接,需提供正确...

    JDBC与Java数据库编程

    **JDBC(Java Database Connectivity)**是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口,它提供了标准的API让Java程序员能够连接各种不同类型的数据库。JDBC是Java平台的核心部分,允许开发者...

    JDBC与Java数据库编程.pdf

    《JDBC与Java数据库编程》一书旨在深入探讨Java如何通过JDBC(Java Database Connectivity)这一接口与数据库进行高效互动,实现数据的读取、写入、更新等操作。以下是对该主题的详细解析,包括JDBC的概念、体系结构...

    JDBC学习资料 jdbc编程

    事件模型是Java图形用户界面(GUI)编程的一部分,与JDBC关系不大,但在构建用户交互应用时很重要。在AWT(Abstract Window Toolkit)中,事件模型包括: 1. Event:用户在用户界面上的操作,如点击按钮、移动鼠标等...

    实验九:JDBC编程

    JDBC编程实验报告 本实验报告总结了使用Java数据库连接(JDBC)编程的实验过程和结果。通过本实验,我掌握了JDBC的概念与使用场景,理解了JDBC的工作原理,掌握了使用JDBC操作数据库的基本步骤,掌握了JDBC中几个...

    Java语言SQL接口—JDBC编程技术

    3. JDBC编程步骤 - 加载驱动:使用Class.forName()方法加载JDBC驱动。 - 建立连接:通过DriverManager.getConnection()方法建立与数据库的连接。 - 创建Statement:根据需求创建Statement或PreparedStatement对象...

    java jdbc连接mySql的小例子

    通过这个小例子,我们可以学习到Java中使用JDBC连接MySQL的基本步骤。它展示了从建立连接到执行SQL,再到处理结果和关闭连接的完整流程。了解这些概念后,你就可以根据需要扩展代码,实现更复杂的数据库操作,如事务...

    JAVA jdbc连接sql2000详细流程

    在Java编程中,JDBC(Java Database Connectivity)是Oracle公司提供的一个Java API,它使得Java程序可以与各种类型的数据库进行交互。本篇文章将详细讲解如何使用JDBC连接SQL Server 2000数据库,帮助开发者了解...

    Java_JDBC编程总结.pdf

    2. **JDBC编程步骤** - **加载驱动**:首先,需要加载对应数据库的JDBC驱动,这通常通过`Class.forName()`方法完成,比如`Class.forName("com.mysql.jdbc.Driver")`。也可以在启动时通过`jdbc.drivers`系统属性加载...

    java -JDBC_Driver 驱动包

    Java JDBC(Java Database Connectivity)驱动包是Java编程语言与各种数据库进行交互的一种标准接口。它允许Java应用程序连接到关系数据库,执行SQL语句,并获取结果。在这个“java - JDBC_Driver”驱动包中,包含了...

    jdbc-oracle.rar_JDBC ORACLE_java JDBC orac_java jdbc oracle_jdbc

    在Java编程语言中,JDBC(Java Database Connectivity)是一个用于与各种数据库进行交互的标准接口。JDBC提供了一套规范,使得Java程序员可以使用统一的方法来访问数据库,包括Oracle数据库。Oracle是世界上最流行的...

Global site tag (gtag.js) - Google Analytics