冰球突破豪华版

学校制造业中国股市IPO1、股(公司股票代碼 003032)
湖北省咨询了解。/网络投诉电话:400-618-4000

JDBC是什么?jdbc常用API有哪些?

更新时间:2020年01月15日18时00分 来源:冰球突破豪华版播客 浏览次数:

1、什么是JDBC?

在web发展中,切不可尽量避免的地要的使用大服务器来存储器和工作管理大统计数据分析统计。为了更好地在java文字中展示 大服务器仿问的能够,Sun单位于一九九六年展示 了了套仿问大统计数据分析统计的标准化Java类库,即JDBC。

JDBC的简称是Javasql语句库接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。应用程序使用JDBC访问数据库的方式如下图所示。

1579081855646_应用程序使用JDBC访问数据库的方式.jpg


从上图可以看出,应用程序使用JDBC访问特定的数据库时,需要与不同的数据库驱动进行连接。由于不同数据库厂商提供的数据库驱动不同,因此,为了使应用程序与数据库真正建立连接,JDBC不仅需要提供访问数据库的API,还𒊎需要封装与各种数据库服务器通信的细节为了帮助大家更♊好地理解应用程序如何通过JDBC访问数据库,下面通过一张图来描述JDBC的具体实现细节,如下图。

1579081871336_JDBC实现细节.jpg

从上图示能够 看到,JDBC的实现了具有五部分。

(1)JDBC驱动包器经营器:提供申请目标的JDBC驱动包器器,包括能够java.sql. Driver Manager类满足。 (2)JDBC能够器API:由Sun单位进行确立,至少最最主要的usb接口标准是java.sql. Driverusb接口标准。

(3)JDBC驱使器:它都是种信息库驱使,由信息库供应商打造,也被视为JDBC驱使程度JDBC驱使器实现目标了JDBC驱使器API,管理与指定的信息库相连接,甚至整理通信网详情。

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对象

1579081881999_01DriverManager类方法.jpg


3、Connection接口

Connection插孔标准代表英语Java编译程序和数据统计库的相连,在Connection插孔标准中,举例一个多编方式方法,到底如表图甲中。

1579081891751_02connection接口.jpg


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关键字

1579081902447_03Statement接口.jpg


5. PreparedStatement接口

PreparedStatement是Statement的子插口方式,代替执行命令预编译的SQL语句。在PreparedStatement插口方式中,给出好几回些通常操作流程的方式 ,实际的如表下如图是。

1579081913409_04PreparedStatement接口.jpg

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相亲对象的批加工ps命令中

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接口

ResultSetusb标准usb接口表达出来 select查询网语句受到的结局集,该结局集封裝在同1个逻辑学申请列表中。在 ResultSetusb标准usb接口实物有同1个指着申请表数据ex表格行的游标,ResultSet喜欢的人刚开始化时,游标在申请表的一、行过后。下列表中论述了ResultSetusb标准usb接口中的适用工艺。

1579081951330_06ResultSet.jpg

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开使产品编号的。

3、实现第一个JDBC程序

完成前头的知道,我对JDBC极其所用API有着大约的知道,收起来就准备介绍一下JDBC语言编程序,JDBC语言编程序大约遵照以内多个具体步骤实现。 (1) 访问并注册成功统计数据表能够,具体情况办法以下。

DriverManager.registerDriver(Driverdriver);

(2) 利用Driver Manager获利的比对数据库接,具体的方式方法以下的。

Connectionconn=DriverManager.getConnection(Stringurl,Stringuser,Stringpass);
从以上的方试能够查出来,getConnection()的方法有八个规格,它们的区分表明统计同时在线url、注册登录统计同时在线的用户账户名和账号密码。统计同时在线山一般性尊循相应行式的写法。

jdbc:subprotocol:subname

上边的URL写法中jdbc要素是稳定的,subprotocol指定的连接可达到指定区域大比对数据报告库视图库的动力软件,而subname要素则很不稳定,也就没有有什么按原则,与众不同大比对数据报告库视图库的模式也许 的存在巨大一定的差异,一Mysql大比对数据报告库视图库实例,其模式一下:

jdbc:mysql://hostname:port/databasename

(3)可以通过Connection男朋友得到Statement男朋友。Connection新建Statement的途径有似下三类。 ① createStatement(): 组建大多的Statement因素 ② prepareStatement(): 建设PreparedStatement目标。 ③ preparCall(): 开启CallableStatement人群。 以有个一般的Statement女朋友特征分析,明确原则如下所示。

Statementstmt=conn.createStatement();

(4)操作Statement来执行工作SQL语句。各种的Statement包括方式以下几种技术来来执行工作语句。 ①execute():可程序执行所以SQL语句。 ②executeQuery():大部分程序实行查詢语句,程序实行后载入象征着成果集的Resultset目标。 ③executeUpdate():主耍采用制定DML和DDL语句。制定DML语句,如INSERT、UPDATE或 DELETE时,调用受SQL语句不良影响的行数,制定DDL语句调用0。 以executeQuer()办法方法特征分析,实际上办法以下。

//来执行SQL语句,提取可是集ResulSet

ResultSetrs=stmt.executQuery(sql);

(5)的操作的ResultSet结局显示集。假设强制来执行的SQL语句是咨询语句,强制来执行结局显示将返还Resultset构造函数,该构造函数里存为了SQL语句咨询的结局显示。小程序能够能够 的操作的该ResultSet构造函数来拿出来咨询结局显示。 ResultSet构造函数供给的最简单的方法通常能够分下面几种。 ①next()、previous()、first()、last()、beforeFirst()、afterLast()、absolute()等位移信息游标的做法 ②getXxx()获取一个指南所指行,某列的值。 (6)的回收利用的orcale环境产品。关机程序的orcale接连,保持环境产品,具有关机程序ResultSet、Statement和Connection等环境产品。 至此,,JDBC填写小程序流程流程图的一般来说部骤早已经完整,为了能让让彩友快的学习如何才能建设JDBC小程序流程流程图,收起来,填写最个JDBC小程序流程流程图,改小程序流程流程图从user列表中收录参数,并将毕竟毕竟打印纸在操作台,实际部骤入戏如图所示。

1、搭建实验环境


CREATEDATABASEchapter01;

USEchapter01;

CREATETABLEusers(

idINTPRIMARYKEYAUTO_INCREMENT,

nameVARCHAR(40),

passwordVARCHAR(40),

emailVARCHAR(60),

birthdayDATE

)CHARACTERSETutf8COOLLATEutf8_genneral_ci;

数据资料资料库和表加入实现目标后,再向users列表中嵌入四条数据资料资料,SQL语句下列图甲中。

INSERTINTOusers(NAME,PASSWORD,email,birthday)

VALUES('zs','123456','zs@sina.com','1981-12-04');

INSERTINTOusers(NAME,PASSWORD,email,birthday)

VALUES('lisi',123456,1isi@sina.com,'1982-12-04');

INSERTINTOusers(NAME,PASSWORD,email,birthday)

VALUES('wangwu',123456,'wangwu@sina.com','1980-12-04');

2、导入数据库驱动

在建Java施工chapter01,正在登陆的统计资料相关文件格式库win7驱程相关文件格式加上到classpath中。因应运执行程序登陆的是MySQL统计资料相关文件格式库,因而,将MySQL的统计资料相关文件格式库win7驱程相关文件格式mysql-connector-java-5.0.8-bin.jar加上到classpath中便可。

3、编写JDBC程序

在建设项目chapter01中,新修建Java类Example01,此类适用于读取硬盘统计资料比对库的users表,并将结杲读取,如例接下装修案例表达。
packagecn.itcast.jdbc.example;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.sql.Date;

publicclassExample01{

publicstaticvoidmain(String[]args)throwsSQLException{

//1.申请注册数据统计库的驱程

DriverManager.registerDriver(newcom.mysql.jdbc.Driver());

//2.实现DriverManager得到统计比对库接连

Stringurl="jdbc:mysql://localhost:3306/chapter01";

Stringusernames="root";

Stringpassword="itcast";

Connectionconn=DriverManager.getConnection(url,username,password);

//3.可以通过Connection群体获得Statement群体

Statementstmt=conn.createStatement();

//4.的使用Statement执行工作SQL语句

Stringsql="select*fromusers";

ResultSetrs=stmt.executeQuery(sql);

//5、进行ResultSet效果集

System.out.println("id|name|password|email|birthday");

while(rs.next()){

intid=rs.getInt("id");//能够列名了解特定数据类型的值

Stringname=rs.getString("name");

Stringpsw=rs.getString("password");

Stringemail=rs.getString("email");

Datebirthday=rs.getDate("birthday");

System.out.println(id+"|"+name+"|"+psw+"|"+email+"|"+birthday);

}

//6.收购 数据显示库

rs.close();

stmt.close();

conn.close();

}

}
应用程序运行后,会讲从users表格中导出到的参数打印出到调控台。 在后边典例中多媒体演示了JDBC网页访问数据资料统计库的步奏。前提备案MySQL的数据资料统计库驱程器类,经过 DriverManager收集同同一个Connection女朋友,第二施用Connection女朋友新创建了同同一个Statement女朋友,Statement女朋友要经过executeQuery()具体的方法执行程序执行SQL语句,并跳回然而集ResultSet女朋友。然后,经过遍历Resultset女朋友便可要到终于的查詢然而必须要注意力的是,在实行第同同一个JDBC执行程序时,也有2个部分必须要调整,具体的以下几点。 1、公司注册驱程 在登陆资料库驱程时,其实DriverManager.registerDriver(new com. mysql.jdbc.Driver())的方法能够 做好,但会使资料库驱程被登陆三次。这时根据Driver类的源码中,都已经在静止代码是什么块中做好了资料库驱程的登陆。于是,为了更好地尽量不要资料库驱程被重新登陆,只需要在方式方法添载入驱程类就可,特定载入方式方法下列随时。

Class.forName("com.mysqk.jdbc.Driver");

2、增加影视资源 犹豫统计数据资料显示库資源无比无价之宝,统计数据资料显示库合法的连结数网站访问连结总量不足,那么,当统计数据资料显示库資源适用结束以后后,有必要要忘了解放資源。为了让保护資源的解放,在Java源程序中,应将之后有必要要强制执行的作业在finally编码块中,到底方法给出。

if(rs!=null){
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
rs=null;
}

if(stmt!=null){
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
stmt=null;
}

if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
conn=null;
}

冰球突破豪华版播客


猜你喜欢:

JDK下载安装与环境变量配置图文教程

0 分享到:
金年会官网 365体育亚洲官方入口 金年会体育 KB体育平台 Inspurcoin | bitcoin trading platform | digital curre𒀰ncy trading platform