数据库操作的桥梁-JDBC学习笔记
2018-03-22 11:53
337 查看
数据库操作的桥梁-JDBC学习笔记
JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语言编程中与数据库连接的API。JDBC API提供了以下接口和类:
DriverManager: 这个类管理数据库驱动程序的列表。确定内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。
Driver: 此接口处理与数据库服务器通信。很少直接直接使用驱动程序(Driver)对象,一般使用
DriverManager中的对象,它用于管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息
Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过此唯一的连接对象。
Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。
ResultSet: 这些对象保存从数据库后,执行使用
Statement对象的SQL查询中检索数据。它作为一个迭代器,可以通过移动它来检索下一个数据。
SQLException: 这个类用于处理发生在数据库应用程序中的任何错误。
构建JDBC应用程序涉及以下六个步骤 -导入包:需要包含包含数据库编程所需的JDBC类的包。 大多数情况下,使用
import java.sql.*就足够了。
注册JDBC驱动程序:需要初始化驱动程序,以便可以打开与数据库的通信通道。
打开一个连接:需要使用
DriverManager.getConnection()方法创建一个
Connection对象,它表示与数据库的物理连接。
执行查询:需要使用类型为
Statement的对象来构建和提交SQL语句到数据库。
从结果集中提取数据:需要使用相应的
ResultSet.getXXX()方法从结果集中检索数据。
清理环境:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。
JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互。例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数据库连接并与数据库进行交互。JDK附带的
Java.sql包包含各种类,其类的行为被定义,实现在第三方驱动程序中完成。 第三方供应商在其数据库驱动程序中实现
java.sql.Driver接口。MySQL
Connector/J驱动程序是基于纯Java的驱动程序通过套接字连接与供应商的数据库直接通信。 这是数据库可用的最高性能驱动程序,通常由供应商自己提供。在使用jdbc时,首先需要注册jdbc驱动,通常我们通过注册驱动程序最常见的方法是使用Java的
Class.forName()方法,将驱动程序的类文件动态加载到内存中,并将其自动注册。这个方法是推荐使用的方法,因为它使驱动程序注册可配置和便携。以下示例使用
Class.forName()注册Oracle驱动程序 -
try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch(ClassNotFoundException ex) { System.out.println("Error: unable to load driver class!"); System.exit(1); }
数据库厂家提供的驱动oracle.jdbc.driver.OracleDriver或者com.mysql.jdbc.Driver都实现了java.sql.Driver接口,
注册驱动程序是将Oracle或mysql驱动程序的类文件加载到内存中的过程,因此可以将其用作JDBC接口的实现。Class.forName()方法将类文件
加载至内存中, 之后完成类的初始化, 从而可以实现将厂商提供的驱动注册至DriverManager中。 static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}加载驱动程序后,可以使用
DriverManager.getConnection()方法建立连接。 为了方便参考,这里列出三个重载的
DriverManager.getConnection()方法 -
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
这里每个格式都需要一个数据库URL。
在JDBC程序结束之后,显式地需要关闭与数据库的所有连接以结束每个数据库会话, connection.closer();
当获得了与数据库的连接后,就可以与数据库进行交互了。 JDBC
Statement,
CallableStatement和
PreparedStatement接口定义了可用于发送SQL或PL/SQL命令,并从数据库接收数据的方法和属性。
无论哪种对象,在执行完sql的操作之后,都需要显式关闭。SQL语句执行后从数据库查询读取数据,返回的数据放在结果集中。
SELECT语句用于从数据库中选择行并在结果集中查看它们的标准方法。
java.sql.ResultSet接口表示数据库查询的结果集。
ResultSet对象维护指向结果集中当前行的游标。 术语“结果集”是指包含在
ResultSet对象中的行和列数据。
ResultSet接口中有几种涉及移动光标的方法,包括
package learn.zhujq.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* @author jinQiang.zhu
*
*/
public class jdbcDemo1 {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/learning";
// Database credentials -- 数据库名和密码自己修改
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stat = null;
try {
//STEP 2: Register JDBC driver,
//在Class.forName加载完驱动类,开始执行静态初始化代码时,会自动新建一个Driver的对象,
//并调用DriverManager.registerDriver把自己注册到DriverManager中去。
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stat = conn.createStatement();
String sql = "select * from group_space";
ResultSet rs = stat.executeQuery(sql);
System.out.println("rs=" + rs);
while (rs.next()) {
Long groupId = rs.getLong("GROUP_ID");
System.out.println("groupId=" + groupId);
}
//STEP 6: Clean-up environment
rs.close();
stat.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关文章推荐
- 学习笔记:jdbc连接、操作数据库SQL Server 2008(二)
- JavaWeb学习笔记-JDBC操作(2)[数据库的更新与查询]
- 学习笔记:jdbc连接、操作数据库SQL Server 2008 ——MyEclipse web示例
- 学习笔记_JDBC_1_Demo1_连接数据库的基本操作和步骤
- javaweb--jdbc--数据库操作学习笔记
- Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
- 学习笔记_JDBC_1_Demo1_连接数据库的基本操作和步骤
- 学习笔记:jdbc连接、操作数据库SQL Server 2008
- 【JSP学习笔记】JDBC操作数据库
- Mybatis 学习笔记(1.1)传统JDBC编程查询数据库
- java学习笔记——使用JDBC,对数据库进行增删改查(方案一)【推荐】
- MYSQL 学习笔记二 数据库引擎与数据表的基本操作
- JSP学习之---运用useBean和jdbc操作。实现简答前台操作数据库。
- php学习笔记之PDO连接数据库及一些操作
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.11Java数据库操作(4.11.1-4.11.8)
- JDBC操作数据库的学习(1)
- iOS学习笔记(十五)——数据库操作(SQLite)
- MySQL服务器学习笔记!(二) ——数据库各项操作
- iOS学习笔记——数据库操作(SQLite)
- iOS学习笔记41-ios FMDB 数据库事务操作