Javaweb学习笔记(JDBC入门)
JDBC概述
JDBC全称是Java数据库连接,是一套用于执行SQL语句的Java API,应用程序可以通过JDBC连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除操作。
JDBC实现包括三部分:
(1)JDBC驱动管理器:负责注册特定的JDBC驱动器,主要通过java.sql.DriverManager类实现。
(2)JDBC驱动器API:最主要的接口是java.sqlDriver接口
(3)JDBC驱动器:一种数据库驱动,也称JDBC驱动程序,实现了JDBC驱动器API负责与特定的数据库连接,以及处理通信细节。
JDBC常用API
(1)Driver接口
Driver接口是所有JDBC驱动程序都必须实现的接口,该接口专门提供给数据库厂商使用,在编写JDBC程序时必须要把制定数据库驱动程序或类库加载到项目classpath中。
(2)DriverManager类
DriverManager类用于加载JDBC驱动并且创建于数据库的连接,其中定义了两个比较重要的静态方法:
方法名称 | 功能描述 |
---|---|
registerDriver(Driver Driver) | 该方法用于向DriverManager中注册的指定的JDBC驱动程序 |
getConnection(String url,String user,String pwd) | 该方法用于建立和数据库的连接,并返回表示连接的Connection对象。 |
(3)Connection接口
Connection接口代表Java程序和数据库连接,在Connection接口中,定义了一系列方法:
方法名称 | 功能描述 |
---|---|
getMetaData() | 该方法用于返回表示数据库的元数据的DatabaseMetaData对象 |
createStatement() | 用于创建一个Statement对象来将SQL语句发送到数据库 |
prepareStatement(String sql) | 用于创建一个prepareStatement对象将参数化的SQL语句发送到数据库 |
prepareCall(String sql) | 用于创建一个CallableStatement对象来调用数据库存储过程 |
(4)Statement接口
Statement接口用于向数据库发送SQL语句,在Statement接口中,提供了三个执行SQL语句的方法。
方法名称 | 功能描述 |
---|---|
excute(String sql) | 用于执行各种SQL语句,该方法返回一个boolean类型的值,如果为true表示执行的SQL语句具备查询结果,可以通过Statement的getResultSet()方法获得查询结果 |
excuteUpdate(String sql) | 用于执行SQL中的insert、update和delete语句,该方法返回一个int类型的值,表示数据库受该SQL语句影响的记录的数目。 |
excuteQuery(String sql) | 用于执行SQL语句中的select语句,该方法返回一个表示查询结果的ResultSet对象 |
(5)PreparedStatement接口
PrepareStatement是Statement的子接口,用于执行预编译的SQL语句。
方法名称 | 功能描述 |
---|---|
excuteUpdate() | 在此PrepareStatement对象中执行SQL语句,该语句必须是一个DML语句或者是无返回内容的SQL语句 |
excuteQuery() | 在此PrepareStatement对象中执行SQL语句,该方法返回的是ResultSet对象 |
setInt(int paremeterIndex,int x) | 将指定参数设置为给定的int值 |
setFloat(int pareameterIndex,float x) | 将指定参数设置为给定的float值 |
setString(int parameterIndex,String x) | 将指定参数设置为给定的String值 |
setDate(int parameterIndex,Dtae x) | 将指定参数设置为给定的Date值 |
addBatch() | 将一组参数添加到此PreparedStatement对象的批处理命令 |
setCharacterStream(parameterIndex reader,length) | 将指定的输入流写入数据库的文本字段 |
setBinaryStream(parameterIndex,x,length) | 将二进制的输入流数据写入到二进制字段中 |
(6)CallableStatement接口
CallableStatement是PreparedStatement的子接口,用于执行SQL存储过程。
方法名称 | 功能描述 |
---|---|
registerOutParamenter(int pareameterIndex,int sqlType) | 按顺序位置将OUT参数注册为SQL类型。其中paremeterIndex表示顺序位置,sqlType表示SQL类型 |
setNull(String paramterName,int sqlType) | 将指定参数设置为SQL类型的NULL |
setString(String parameterName,String x) | 将指定参数设置为给定的Java类型的String |
wasNull() | 查询最后一个读取的OUT参数是否为SQL类型的NULL值 |
getInt(int parameterIndex) | 以Java语言中int值的形式获取指定的数据库中的INTEGER类型的值 |
(7)ResultSet接口
ResuleSet接口表示select查询语句得到的结构集,该结果集封装在一个逻辑表格中。在ResultSet接口内部有一个指向表格数据行的游标,ResultSet对象初始化时,游标在表格的第一行之前。
方法名称 | 功能描述 |
---|---|
getString(int columnIndex) | 用于获取指定字段String类型的值,参数columnIndex代表字段的索引。 |
getString(String columnName) | 用于获取指定字段String类型的值,参数columnIndex代表字段的名称 |
getInt(int columnIndex) | 用于获取指定字段int类型的值,参数columnIndex代表字段的索引 |
getInt(String columnIndex) | 用于获取指定字段类型的值 |
getDate(int columnIndex) | 用于获取指定字段的int类型的值,参数columnIndex代表字段的索引 |
getDate(String columnIndex) | 用于获取指定字段的int类型的值,参数columnIndex代表字段的名称 |
next() | 将游标从当前位置向下移一行 |
absolute(int row) | 将游标移动到此ResultSet对象的指定行 |
afterLast() | 将游标移动到此ResultSet对象的末尾,级最后一行之后 |
beforeFirst() | 将游标移动到ResultSet对象的开头 |
previous() | 将游标移动到此ResultSet对象的上一行 |