A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1. JDBC
1.1. JDBC概述
JDBCJava DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
1.2. JDBC的作用
使用JDBC向各种关系数据发送SQL语句,也可以直接让Java程序操作数据库;
file:///C:\Users\CHUANG\AppData\Local\Temp\ksohtml\wps8087.tmp.jpg

1.3. JDBC使用步骤
1、注册驱动   2、获取会话对象 3、创建sql语句的执行者
4、编写sql语句 5、执行sql语句,处理结果 6、关闭资源
1.3.1. 注册驱动
注册驱动,就是让程序知道,即将操作的是什么数据库,注册驱动使用的是DriverManager类中的一个静态方法registerDriver,如下:
static void
registerDriver(Driver driver)
向 DriverManager 注册给定驱动程序

说明:
①  DriverManager用于管理一组JDBC驱动程序的基本服务
②  Driver 为数据库驱动,程序连接哪一个数据库,就加载哪一个数据库即可
1.3.2. 获取会话对象
获取会话对象,也就是获取一个连接对象,专门用于给数据库通信,类似于快递员;
获取会话对象同样也是使用DriverManager类中的静态方法getConnection
static Connection
getConnection(String url, String user, String password)
试图建立到给定数据库 URL 的连接

说明:
①  url 访问数据库URL路径
②  user 访问数据库的用户名
③  password 访问数据库的密码
1.3.3. 创建SQL语句的执行者
使用会话对象Connection创建一个sql语句的执行者,用于专门负责执行sql语句,该sql语句执行者有两种格式,一种是处理不带占位符的,另一种是处理带占位符的
处理不带占位符的sql语句执行者使用Connection连接对象中的Statement方法
Statement
createStatement()
创建一个 Statement 对象来将 SQL 语句发送到数据库

处理带占位符的sql语句执行者,使用Connection连接对象中的prepareStatement方法
PreparedStatement
prepareStatement(String sql)
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库

1.3.4. 编写SQL语句
编写一段sql语句来操作数据库,我们可以编写带占位符的sql语句,也可以是编写不带占位符的sql语句
代码格式:标准的sql语句即可
1.3.5. 执行SQL语句,处理结果
对于编写好的sql语句,需要执行后才能有效的更改数据库的数据,所以我们需要使用sql语句的执行者来执行我们的sql语句,需要注意的是:
增加、删除、修改语句的返回结果都是int值,代表影响的行数,只有查询语句的结果是ResultSet
其中增加、删除、修改语句使用的执行方法如下:
int
executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。

查询语句使用的执行方法如下:
ResultSet
executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象

1.3.6. 关闭资源
使用完资源后,我们要依次关闭结果集、sql语句执行者、会话对象
关闭资源都是使用close方法
1.4. ResultSet解析
一个ResultSet对象对应着一个由查询语句返回的一个表,这个表中包含所有的查询结果,实际上,我们就可以将一个ResultSet对象看成一个表。对ResultSet对象的处理必须逐行进行,而对每一行中的各个列,可以按任何顺序进行处理
ResultSet对象维持一个指向当前行的指针。最初,这个指针指向第一行之前。调用ResultSet类的next()方法使这个指针向下移动一行
file:///C:\Users\CHUANG\AppData\Local\Temp\ksohtml\wps8098.tmp.jpg
next()方法的返回值是一个boolean型的值,该值若为true, 说明结果集中还存在下一条记录,并且指针已经成功指向该记录,可以对其进行处理;若返回值是false,则说明没有下一行记录,结果集已经处理完毕
boolean
next()
将光标从当前位置向前移一行(向下移动一行,如果有元素会返回true,否则返回false)


对每一行数据进行处理,可以采用ResultSet类的getObject()方法获得某一列的检索结果
Object
getObject(String columnLabel)
以 Java 编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值


ResultSet使用步骤说明:
1、先使用next方法,判断结果集中是否还有下一行数据
2、如果有,使用getObject方法传递列名,获取这一行的这一列的某个值
循环上述过程,即可获取结果集中的所有数据


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马