JDBC的概述「建议收藏」

JDBC的概述「建议收藏」————————————————–JDBC的概述————————————————————1    JDBC概述1 什么是JDBC  JDBC(JavaDataBaseConnectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库…

大家好,又见面了,我是你们的朋友全栈君。

————————————————–JDBC的概述————————————————————

1    JDBC概述

1 什么是JDBC

  JDBC(JavaDataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

2 JDBC原理

早期SUN公司的天才们想编写一套可以连接天下所有数据库的API,但是当他们刚刚开始时就发现这是不可完成的任务,因为各个厂商的数据库服务器差异太大了。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!

JDBC的概述「建议收藏」

JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。

当然还有第三方公司专门为某一数据库提供驱动,这样的驱动往往不是开源免费的!

 

2 JDBC接口、类介绍

 

1 JDBC中的主要类(接口)

在JDBC中常用的类有:

l  DriverManager – 类,用来获取Connection;

l  Connection – 接口;

l  Statement – 接口;

l  ResultSet – 接口。

JDBC的概述「建议收藏」

2 DriverManager

其实我们今后只需要会用DriverManager的getConnection()方法即可:

1.    Class.forName(“oracle.jdbc.OracleDriver”);//注册驱动

2.    String url = “jdbc:oracle:thin:@127.0.0.1:1521:orcl”;

3.    String username = “scott”;

4.    String password = “tiger”;

5.    Connection con =DriverManager.getConnection(url, username, password);

 

注意,上面代码可能出现的两种异常:

1.    ClassNotFoundException:这个异常是在第1句上出现的,出现这个异常有两个可能:

l  你没有给出oracle的jar包;

l  你把类名称打错了,查看类名是不是oracle.jdbc.OracleDriver。

 

2.    SQLException:这个异常出现在第5句,出现这个异常就是三个参数的问题,往往username和password一般不是出错,所以需要认真查看url是否打错。

 

对于DriverManager.registerDriver()方法了解即可,因为我们今后注册驱动只会Class.forName(),而不会使用这个方法。

 

3 Connection

Connection最为重要的方法就是获取Statement:

l  Statement stmt = con.createStatement();

 

后面在学习ResultSet方法时,还要学习一下下面的方法:

l  Statement stmt = con.createStatement(int,int);

 

4 Statement

Statement最为重要的方法是:

l  int executeUpdate(String sql):执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table、alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句;

l  ResultSet executeQuery(String sql):执行查询操作,执行查询操作会返回ResultSet,即结果集。

 

  boolean execute()

Statement还有一个boolean execute()方法,这个方法可以用来执行增、删、改、查所有SQL语句。该方法返回的是boolean类型,表示SQL语句是否执行成功。

如果使用execute()方法执行的是更新语句,那么还要调用int getUpdateCount()来获取insert、update、delete语句所影响的行数。

如果使用execute()方法执行的是查询语句,那么还要调用ResultSet getResultSet()来获取select语句的查询结果。

 

 

5 ResultSet之获取列数据

可以通过next()方法使ResultSet的游标向下移动,当游标移动到你需要的行时,就需要来获取该行的数据了,ResultSet提供了一系列的获取列数据的方法:

l  String getString(int columnIndex):获取指定列的String类型数据;

l  int getInt(int columnIndex):获取指定列的int类型数据;

l  double getDouble(int columnIndex):获取指定列的double类型数据;

l  Object getObject(int columnIndex):获取指定列的Object类型的数据。

 

上面方法中,参数columnIndex表示列的索引,列索引从1开始,而不是0,这第一点与数组不同。如果你清楚当前列的数据类型,那么可以使用getInt()之类的方法来获取,如果你不清楚列的类型,那么你应该使用getObject()方法来获取。

ResultSet还提供了一套通过列名称来获取列数据的方法:

l  String getString(String columnName):获取名称为columnName的列的String数据;

l  int getInt(String columnName):获取名称为columnName的列的int数据;

l  double getDouble(String columnName):获取名称为columnName的列的double数据;

l  Object getObject(String columnName):获取名称为columnName的列的Object数据;

——————————————————————————————————————

结果集的列数

ResultSet rs =stm.executeQuery(sql);

ResultSetMetaData rsmd =rs.getMetaData();

int count = rsmd.getColumnCount();

获取行数 只能通过滚动 resultset

ResultSet rs = stm.executeQuery(sql);

rs.last();

int row = rs.getRow();

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152260.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MS-SQLSERVER中的MSDTC不可用解决方法

    MS-SQLSERVER中的MSDTC不可用解决方法

    2021年12月14日
  • stm32f411中文手册(基于stm32f407)

    文章目录智能门锁一、项目背景二、项目功能要求三、元件准备四、项目设计(一)原理图设计(二)硬件设计(三)程序设计智能门锁资料链接:stm32智能门锁.rar哔哩哔哩项目展示视频:https://b23.tv/bxfxvd一、项目背景在消费升级渗透在各个领域的今天,国民消费发生着巨大的变化,与每个人息息相关的家居行业也是如此。现今,越来越多的智能家居产品出现在普通老百姓的生活中,智能照明、智能窗帘、智能扫地机器人等各种智能产品都给人们的生活带来了极大的便利。智能门锁作为智能家居中重要的一环,也成

  • 自动登陆抽屉(1)

    自动登陆抽屉(1)

  • return 0和return 1和return -1的区别「建议收藏」

    return 0和return 1和return -1的区别「建议收藏」1、返回值int类型的函数返回:return语句用来结束循环,或返回一个函数的值。return0:一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。return-1::表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败;以上两个是约定俗成,系统提供的函数绝大部分定义为int类型返回值的都是这样的。返回值是返回给系统用的,给…

    2022年10月21日
  • obs windows 编译和打包[通俗易懂]

    obs windows 编译和打包[通俗易懂]obswindows编译和打包构建最新版obsstudio;参考https://github.com/obsproject/obs-studio/wiki/Install-Instructions下载并安装VShttps://visualstudio.microsoft.com/zh-hans/downloads/下载并安装QThttps://www.qt.io/off…

  • mysql创建视图sql语句_MySQL 视图

    mysql创建视图sql语句_MySQL 视图视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以大大降低查询的重复性。

    2022年10月24日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号