JDBC简介
Java是通过JDBC技术实现对各种数据库访问的,JDBC是Java数据库连接技术的简称,他充当了Java应用程序与各种不同数据库之间进行对话的媒介。它可以把数据持久保存,这就是一种持久化机制,这里涉及一个术语,持久化,持久化是将程序中的数据在瞬时状态和持久状态间转换的机制。通俗的讲,就是瞬时数据(如内存中的数据,不能永久保存)持久化为持久数据(如持久化至数据库中,能够长久保存)。
JDBC的工作原理
1、JDBC API
提供Java应用程序与各种不同数据库交互的标准接口,如Connection(连接)接口,Statement接口,ResultSet(结果集)接口,PreparedStatement接口等。开发者使用这些JDBC接口进行各类数据库操作。
2、JDBC Driver Manager
它是JDBC接口的支柱,负责管理各种不同的JDBC驱动,把Java应用程序连接到相应的JDBC驱动程序上,位于JDK的java.sql包中,
3、JDBC驱动
JDBC驱动由各个数据库厂商或第三方中间件厂商提供,负责连接各种不同的数据库。
JDBC API介绍
JDBC API主要做三件事,与数据库建立连接,发送sql语句,处理结果。
DriverManager类:装载驱动程序,并为创建新的数据库连接提供支持。
Connection接口:负责连接数据库并担任传送数据的任务。
Statement接口:由Connection 产生,负责执行SQL语句。
ResultSet接了:负责保存和处理Statement执行后所产生的查询结果。
PreparedStatement接口:Statement的子接口,也由Connection产生。,同样负责执行SQL语句,与Connection接口相比,PreparedStatement接口具有高安全性,高性能,高可读性和高可维护性的优点。
JDBC访问数据库的步骤
1、加载JDBC驱动
Class.forName("JDBC驱动类的名称");
2、与数据库建立连接
Connection conn=DriverManager.getConnection(数据连接字符串,数据库用户名,密码);
3、发生SQL语句,并得到返回结果
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("查询SQL的语句");
4、处理放回结果
while(rs.next())
{
int id=rs.getInt("id");
String name=rs.getString("name");
}
Statement接口和Result接口
Connection接口的常用方法
方法名称 | 作用 |
void close() | 立即释放此Connection对象的数据库和JDBC资源 |
Statement createStatement() | 创建一个Statement对象来将SQL语句发送到数据库 |
PreparedStatement PreparedStatement(String sql) | 创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库 |
boolean isClosed() | 查询此Connection对象是否已经被关闭 |
Statement接口常用方法
方法名称 | 作用 |
ResultSet executeQuery(String sql) | 可以执行SQL查询并获取ResultSet对象 |
int executeUpdate(String sql) | 可以执行插入、删除、更新的操作,返回值是执行该操作所影响的行数 |
boolean execute(String sql) | 可以执行任意SQL语句,若结果为ResultSet对象,则返回true,若其为更新计数或不存在任何结果,则返回false. |
PreParedStatement接口
PreparedStatement接口继承自Statement接口,PreparedStatement比普通Statement对象使用起来更加灵活,更有效率。
PreParedStatement接口常用方法
方法名称 | 作用 |
boolean execute() | 在此PreParedStatement对象中执行SQL语句,如结果是Result对象,则返回true,如果结果是更新计数或者没结果,则返回false |
ResultSet executeQuery() | 在此PreParedStatement对象中执行SQL查询,并返回该查询生成的ResultSet对象 |
int executeUpdate() | 在此PreParedStatement对象执行SQL语句,该语句必须是DML语句,如Insert,update或delete语句,或是无返回内容的sql语句,如DDL语句,返回值是执行该操作所影响的行数。 |
void setInt(int index,int x) | 将指定参数设置为给定Java int值,设置其他类型参数的方法与此类型。 |
void setObject(int index,Object x) | 使用给定对象设置指定参数的值。 |
使用PreParedStatement操作数据库的基本步骤
1、创建PreParedStatement对象
通过Connection接口的PreParedStatement(String sql)方法来创建PreParedStatement对象,SQL语句可具有一个或多个参数。
PreParedStatement pst=conn.PreParedStatement("sql语句");
2、设置每个输入参数的值
pst.setInt(要设置参数的序数位置,设置给参数的值);
3、执行SQL语句
pst.executeUpdate();