`

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 面向对象程序设计第9章 JDBC编程.pptx

    9.1.3 JDBC编程步骤;9.1.3 JDBC编程步骤;9.1.3 JDBC编程步骤;9.1.3 JDBC编程步骤; 9.1.3 JDBC编程步骤 ; 9.1.3 JDBC编程步骤 ;9.1.4 学生实践练习;9.1.4 学生实践练习;9.2 PreparedStatement执行DML语句; 9.2.1 ...

    jdbc 编程操作数据库java 程序连接

    JDBC的概念 ... JDBC编程的步骤 通过ODBC建立连接 通过SQLSERVER 提供的驱动程序获得连接 通过ORACLE提供的驱动程序获得连接 通过数据源获得连接 通过连接池获得连接 总结数据库连接的各种方式

    踩踩踩JDBC六大步骤

    1、JDBC编程六大步: 1)注册driver 1.class.forName(driver) 2.new oracle.jdbc.driver.OracleDriver(); 3.java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver jdbc.drivers=System.gerProperties(); 2)获得...

    jdbc技术及编程步骤

    本文档提供jdbc技术解决各类数据库连接的详细步骤,可以供入门级java学习

    jdbc的详细介绍

    1. JDBC编程中的异常 2. JDBC当中的元数据 3. 事务(ACID) 4. 事务边界的划分: 5. 使用事务过程中可能出现的异常情况: 6. 事务的隔离级别 第五章 JDBC2.0 1. ResultSet的可滚动性(默认只能向下(向前)移动) 2. ...

    JAVA实验报告四数据库编程.docx

    实验四数据库编程 1、实验目的: (1)掌握基本的DBMS的使用 (2)理解JDBC的概念 (3)运用JDBC-ODBC桥开发...3、实验内容与步骤: 完成一个具体的数据库系统的开发,如图书管理系统、人事管理系统、学生信息管理系统等等。

    java基础-JDBC的使用

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与数据库进行交互的标准API。下面是使用Java JDBC进行数据库操作的基本步骤: 加载数据库驱动程序。 建立数据库连接。 创建和执行SQL语句。 处理结果集...

    Java入门1·2·3——一个老鸟的Java学习心得 高清pdf

    最后还给出了一个聊天程序实例和一个数据表操作窗口实例,将Swing、UDP、Java集合类、线程同步、接口和JDBC编程有机地结合起来,展示了开发一个简单程序的典型步骤。 本书适合广大想学习一门编程语言的读者、没有...

    Java入门1·2·3:一个老鸟的Java学习心得.rar 超清

    最后还给出了一个聊天程序实例和一个数据表操作窗口实例,将Swing、UDP、Java集合类、线程同步、接口和JDBC编程有机地结合起来,展示了开发一个简单程序的典型步骤。 《Java入门1·2·3:一个老鸟的Java学习心得》...

    jdbc执行存储过程

    jdbc执行存储过程java源码

    JDBC访问数据库的步骤

    JDBC编程步骤总结: 1. Load the Driver:Class.forName(); 2. Connect the DateBase: DriveManager.getConnection() 3. Execute the SQL: (1) Connection.createStatement() Connection.prepareStatement(sql) ...

    《Java程序设计案例教程》教学课件09Java数据库编程.pptx

    学习目标 01 掌握在Java应用程序中用JDBC连接驱动访问MySQL数据库的方法和步骤。 02 掌握通过Java应用程序操作MySQL数据库的方法和步骤,包括查询(顺序查询、游动查询)、添加、修改和删除数据记录等基本数据操作...

    JDBC开发过程与原理

    JDBC应用步骤 1,注册加载一个driver驱动 2,创建数据库连接(Connection) 3,创建一个Statement(发送sql) 4,执行sql语句 5,处理sql结果(select语句) 6,关闭Statement 7,关闭连接Connection...

    【MySQL数据库】JDBC编程

    1.Java的数据库编程:JDBC 2.JDBC工作原理 3.JDBC使用 3.1 JDBC的使用步骤 3.2 JDBC的具体使用 第一步:加载数据库驱动 第二步:创建数据库连接Connection 第三步:创建操作命令(Statement) 第四步:执行SQL语句 ...

    Java网络程序设计+JDBC程序设计+模拟QQ微信的即时网络通信应用程序

    实践周子任务二(JDBC程序设计):了解JDBC工作的基本原理和掌握JDBC编程的基本步骤,按要求编写一个带有图形用户界面的数据库应用程序,具备增加、删除、查询、修改功能。 实践周高级子任务:结合子任务一和二,构建一...

    Java-Web程序设计实战-第8章-JDBC详解.pptx

    8.1.1 JDBC驱动类型 8.1.2 JDBC的常用接口和类 8.1.3 JDBC编程的基本步骤 5 Java-Web程序设计实战-第8章-JDBC详解全文共86页,当前为第5页。 JDBC是应用程序编程接口,描述了一套访问关系数据库的标准Java类库,...

    Java开发详解.zip

    031704_【第17章:Java数据库编程】_JDBC操作步骤及数据库连接操作笔记.pdf 031705_【第17章:Java数据库编程】_执行数据库更新操作笔记.pdf 031706_【第17章:Java数据库编程】_ResultSet接口笔记.pdf 031707_【第...

    数据库实验JDBC连接数据库.docx

    实验目的 了解DBMS各种语言接口的编程方法。 掌握JDBC连接DBMS进行数据库应用开发的基本方法。 实验内容 使用JDBC连接DBMS 建立数据库连接。 删除数据库连接。 使用JDBC查询TPC-H数据库 查找单个表的数据。 查找多...

    JAVA + ACCESS 编程体会

    下午花了点时间,体会了下java&access的编程。实际上,是公司需要整合两个异质系统的数据。数据库一个采用ms的sql server,另一个是access。其实对于数据表的操作,免不了总是程序里面一个重要的步骤。之前,公司...

Global site tag (gtag.js) - Google Analytics