JavaWeb JDBC(12)

一.JDBC概念

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

在这里插入图片描述
2、JDBC常用API

在开发JDBC程序前,首先了解一下JDBC常用的API。JDBC API主要位于java.sql包中,该包定义了一系列访问数据库的接口和类,具体如下。

  1. Driver接口

Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。在编写JDBC程序时,必须要把指定数据库驱动程序或类库加载到项目的classpath中。
2. DriverManager类

Driver Manager类用于加载JDBC驱动并且创建与数据库的连接。在Driver Manager类中,定义了两个比较重要的静态方法。如表所示:

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)
用于创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库

prepareCall(String sql)
用于创建一个CallableStatement对象来调用数据库存储过程

4、Statement接口

Statement接口用于向数据库发送SQL语句,在Statement接口中,提供了三个执行SQL语句的方法,具体如表所示。

execute(String sql)

用于执行各种SQL语句,该方法返回一个boolean类型的值,如果为true,表示所执行的SQL语句具备查询结果,可通过Statement的getResultSet方法获得查询结果。

executeUpdate(String sql)

用于执行SQL中的Insert、update和delete语句。该方法返回一个int类型的值,表示数据库中受该SQL语句影响的记录的数目。

executeQuery(String sql)

用于执行SQL中的select语句,该方法返回一个表示查询结果的ResultSet对象
在这里插入图片描述

  1. PreparedStatement接口

PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。在PreparedStatement接口中,提供了一些基本操作的方法,具体如表下所示。
在这里插入图片描述

executeUpdate()

在此PreparedStatement对象中执行SQL语句,该语句必须是个DML语句或者是无返回内容的SQL语句,比如DDL语句。

executeQuery()

在此PreparedStatement对象中执行SQL查询,该方法返回的ResultSet对象

setInt(int parameterIndex, int x)

将指定参数设置为给定的int值

setFloat(int parameterIndex, float x)

指定参数设置为给定的float值

setString(int parameterIndex, String x)

将指定参数设置为给定的String值

setDate(int parameterIndex, Date x)

将指定参数设置为给定的Date值

addBatch()

将一组参数添加到此PreparedStatement对象的批处理命令中

setCharacterStream(parameterIndex, reader, length)

将指定的输入流写入数据库的文本字段

setBinaryStream(parameterIndex, x, length)

将二进制的输入流数据写入到二进制字段中

需要注意的是,上表中的setDate()方法可以设置日期内容,但参数Date的类型是java.sq.Date,而不是java.util.Date。

6、CallableStatement接口

CallableStatement是PreparedStatement的子接口,用于执行SQL存储过程。在Callablestatement按接口中,提供了一些基本操作的方法,具体下表所示:

registerOutParameter(int parameterIndex,int sqlType)

按顺序位置将OUT参数注册为SQL类型。其中,parameterIndex表示顺序位置,sqlType表示SQL类型

setNull(String parameter Name, int sqlType)

将指定参数设置为SQL类型的NULL

setString(String parameterName, String x)

查询最后一个读取的OUT参数是否为SQL类型的NULL

wasNull()

查询最后一个读取的OUT参数是否为SQL类型的NULL

getlnt(int parameterIndex)

以Java语言中int值的形式获取指定的数据库中INTEGER类型参数的值

需要注意的是,由于 CallableStatement接口继承PreparedStatement,PreparedStatement接口又继承了 Statement,因此CallableStatement接口中除了拥有自己特有的方法,也同时拥有了这两个父接口中的方法。

7、ResultSet接口

ResultSet接口表示 select查询语句得到的结果集,该结果集封装在一个逻辑表格中。在 ResultSet接口内部有一个指向表格数据行的游标,ResultSet对象初始化时,游标在表格的第一行之前。下表中列举了ResultSet接口中的常用方法。
在这里插入图片描述

getString(int columnIndex)

用于获取指定字段的String类型的值,参数columnIndex代表字段的索引
getString(String columnName)

用于获取指定字段的String类型的值,参数column Name代表字段的名称
getInt(int columnIndex)

用于获取指定字段的int类型的值,参数columnIndex代表字段的索引

getInt(String columnName)

用于获取指定字段的int类型的值,参数columnName代表字段的名称

getDate(int columnIndex)

用于获取指定字段的Date类型的值,参数columnIndex代表字段的索引
getDate(String columnName)

用于获取指定字段的Date类型的值,参数column Name代表字段的名称
next()

将游标从当前位置向下移一行
absolute(int row)

将游标移动到此Resultset对象的指定行
afterLast()

将游标移动到此ResultSet对象的末尾,即最后一行之后
beforeFirst()

将游标移动到此Resultset对象的开头,即第一行之前
previous()
将游标移动到此ResultSet对象的上一行
last()

将游标移动到此ResultSet对象的最

从上表中可以看出,ResultSet接口中定义了大量的getXxx()方法,采用哪种getXxx()方法取决于字段的数据类型。程序既可以通过字段的名称来获取指定数据,也可以通过字段的索引来获取指定的数据,字段的索引是从1开始编号的。

import java.sql.*;
public class JDBC {
	public static void main(String[] args) {
		String driver="com.mysql.cj.jdbc.Driver";//数据库驱动类所对应的字符串
		String URL="jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
                //URL语法格式如下
		//jdbc:mysql:是固定的写法,后面跟主机名localhost,3306是默认的MySQL端口号
		//serverTimezone=UTC是指定时区时间为世界统一时间
		//useUnicode=true是指是否使用Unicode字符集,赋值为true
		//characterEncoding=utf-8是指定字符编码格式为UTF8
		Connection conn=null;
		//Connection接口代表Java程序和数据库的连接对象,只有获得该连接对象后,才能访问数据库,并操作数据表
		try {
			Class.forName(driver);//加载MySQL数据库驱动
		}catch(java.lang.ClassNotFoundException e) {//如果找不到这个类,执行下面的异常处理
			System.out.println("驱动程序配置未配置成功!!!");
		}
		try {
			conn=DriverManager.getConnection(URL,"root","123123");//建立和数据库的连接,并返回表示连接的Connection对象
			System.out.println("数据库连接成功!!!");
		}catch(Exception e) {//未连接成功,执行下面的异常处理
			System.out.println("数据库连接失败!!!");
		}
	}
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值