JDBC基础篇

什么是JDBC?

JDBC全称是Java Database Connectivity,即Java数据库连接,它是一种可以执行SQL语句的API。程序通过JDBC API连接到关系数据库,并使用结构化语言(SQL,数据库标准的查询语言)来完成对数据库的查询、更新。
由于JDBC为数据库开发提供了标准的API,所以使用JDBC开发的数据库应用可以跨平台运行,如果使用相同的标准SQL也可以跨数据库使用。
注:对SQL语句不熟悉的同学可以移步到我的另外一篇博客:《MySQL语句整理》了解一下MySQL语句,对后面举例的代码理解起来会更容易一些

JDBC驱动程序

数据库驱动程序是JDBC程序和数据库之间的转换层,数据库驱动程序负责将JDBC调用映射成特定的数据库调用。
这里写图片描述

通过以下三步就可以实现对数据库的操作:
1. 建立与数据库的连接
2. 执行SQL语句
3. 获得SQL语句的执行结果
//JDBC访问示意图

JDBC的典型用法

首先声明几个对象:

1.DriverManager:用于管理JDBC驱动的服务类,用来获取Connection对象
2. Connection:代表数据库连接对象,每个Connection对象代表一个会话,由会话创建数据库连接接口Statement
Connection类得到Statement对象的方法:

 - Statement createStatement() throws SQLException
 - PreparedStatement prepareStatement(String sql) throws SQLException 
 - CallableStatement prepareCall(String sql) throws SQLException

注:PrepareStatement、CallableStatement是Statement的子类
3. Statement:用于执行SQL语句,该对象不仅可以进行DDL、DCL语句,也可用于DML语句,还可用于数据的查询,当查询数据时将结果返回到一个结果集。
它的常用方法如下:
● ResultSet executeQuery(String sql) throws SQLException:该方法用于查询语句的执行,将结果返回到相应的ResultSet对象中
● int executeUpdate(String sql) throws SQLException:该方法用于执行DML语句,并返回受影响的行数;该方法也可以执行DDL语句,执行DDL语句将返回0
● boolean execute(String sql) throws SQLException:该方法可执行任何SQL语句,如果执行后第一个结果为ResultSet对象则返回true;如果返回的是影响和行数或没有任何结果则返回false
4. ResultSet:结果集对象。该对象包含访问查询结果的方法,它可以通过索引或列名获得列数据,还可以通过移动指针输出想得到的数据。常用:
● void close():释放ResultSet对象
● boolean absolute(int row):奖结果集的记录指针移动到第row行,如果row是负数则移动到倒数第row行。若移动后的指针指向有效数据则返回true
● boolean first():将ResultSet指针定在首行,如果移动后的记录指针指向有效数据则返回true
● boolean next():将ResultSet指针移动到下一行,如果移动后的记录指针指向有效数据则返回true
● Object getXxx(int colunmIndex)或Object getXxx(String colunmLable):通过索引或名字获取ResultSet当前行的值

JDBC编程的一般步骤:

1.加载驱动

代码:Class.forName(driverClass);
MySQL:Class.forName("com.mysql.jdbc.Driver");
Oracle:Class.forName("oracle.jdbc.driver.OracleDriver");

2.通过DriverManager创建数据库连接
代码:

public static synchronized Connection getConnection(String url, String user,String passwd) throws SQLExcepiton

数据库URL:
MySQL:jdbc:mysql://hostname:port/databasename
e.g.jdbc:mysql://localhost:3306/shopping
Oracle:jdbc:oracle:thin:@hostname:port:databasename

user:登录用户名
passwd:登录密码

3.通过Connection对象创建Statement对象(三种方法已提到)
e.g.

 //sql是要执行的语句
 String sql = "select * from items;";
 // 创建连接对象
    PreparedStatement stmt = (PreparedStatement) conn.prepareStatement(sql);

4.使用Statement执行SQL语句(三种方法已提到)

ResultSet rs = stmt.executeQuery();

5.操作结果集
e.g.

while (rs.next()) {
items item = new items();
int id = rs.getInt("id"));
String name = rs.getString("name"));
}

6.回收数据库资源:包括关闭ResultSet、Statement和Connection等(若有try…catch…finally,一定要在finally中进行资源关闭)
e.g.

rs.close();
rs = null;
stmt.close();
stmt = null;
conn.close();
conn = null;

注:若创建Connection是单例模式,那么不关闭Connection对象

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值