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)


相关推荐

  • C# 开发上位机软件[通俗易懂]

    C# 开发上位机软件[通俗易懂]目前正进行上位机软件开发,有兴趣的朋友,可以一起参与,联系qq-19066432

  • 怎样将Sublime Text 设置成中文版(完整教程)「建议收藏」

    怎样将Sublime Text 设置成中文版(完整教程)「建议收藏」1.打开SublimeText,使用快捷键Shift+Ctrl+P,弹出查找栏,如图:2.在搜索框中输入关键字install,出现下拉选项,选择其中的:PackageControl:InstallPackage,如图:(PS:…

  • Android N上Popwindow显示位置不正确问题「建议收藏」

    Android N上Popwindow显示位置不正确问题「建议收藏」Popwindow是Android应用开发过程中比较常用的一个组件,最近发现了在AndroidN(Android7.0)上Popwindow的一个位置显示问题,使用showAsDropDown或者是showAtLocation来显示Popwindow,Popwindow总是顶到了屏幕顶部,而不是在设置的指定控件下方显示,而在Android6.0及其他系统上显示正常。如图所示:mPopu

  • c++关机程序

    c++关机程序//system(“shutdown-s-t10”);//关机system(“cls”);//清屏Sleep()//延时等待这是一个电脑关机程序,但不要无聊尝试,可以在关机是使用HideCursor(); //隐藏光标#include#include<stdio.h>#include<windows.h>#includeintmain(){system(“shutdown-s-t60”);}…

  • sans-serif字体下载_source sans variable是什么字体

    sans-serif字体下载_source sans variable是什么字体Serif衬线字体,字体边缘具有明显的艺术修饰效果,主要用于标题、大字体。如,宋体,TimesNewRomanSans-Serif非衬线字体,字体比划一般粗细均匀、清晰,主要用于少量正文。如,

  • java adt入门教程_Android基础入门教程目录

    java adt入门教程_Android基础入门教程目录第一章:环境搭建与开发相关(已完结10/10)https://blog.csdn.net/coder_pig/article/details/50000773Android基础入门教程——1.1背景相关与系统架构分析Android基础入门教程——1.2开发环境搭建Android基础入门教程——1.2.1使用Eclipse+ADT+SDK开发AndroidAPPAndroid基础入…

发表回复

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

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