




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JDBC技术目录 Jdbc技术概述通过JDBC技术与数据库建立连接了解数据库的信息查询数据库检索结果集更新数据库参数的输入和输出JDEC概述 将Java语言和Sql结合的一个很好的编程接口。 通用的一般的SQL数据库访问和存储结构。支持基本SQL功能的一个通用低层的应用程序编程 接口,在不同的数据库功能模块上提供了一个统一 的用户界面。 ODBC样,建立在X/Open SQL CLI基础之上。 是为Java语言定义的一个SQL调用级(CLI)界面。IjDBC的特点1. 在SQL水平上的API为Java语言定义的一个sql调用级界面,其中心在于执 行基本的SQL声明和取回结果。在此基础上可以定义
2、更 高层次的A P I2. 与SQL的一致性. JDBC允许使用从属于DBMS的系统的任何查询语句, 一个应用程序可以尽可能的使用SQL功能。用户至少使用ANSI SQL 92 entry level标准3. 可在现有的数据库接口之上实现比如可以在ODBC之上实现I JDBC的特点4. 提供与其他Java系统一致的java界面5. 简单易行,最大可能简单化6. 使用健壮、静态的通用数据类型。7. 使一般情形简单化8. 多种方法、多种功能Jdbc的结构 Jdbc有两种接口,分别是面向开发人员的JDBC API 和面向低层的 JDBC Driver API,执行SQL语句,并且得Driver Ma
3、nagerJDBC的结构ConnectionConnectio nStateme ntP reparedState me ntResultResultCon nectionllableStateResult JDBC API是一系列的接口,他使得应用程序 能够进行数据库联接, 到返回结果。JDBC Driver interface是面向驱动程序开发商的接口,每一个驱动程序 都必须提供对于java.sql.Connection, java.sql.Statement, java.sql.PreparedStatement, java.sql只esultSet曙主要挨口的实现方法。 Java.sq
4、l.DriverManager需要装载驱动程序时,每 个驱动程序需要提供一个能实现java.sql.Driver接 口的类。IjDBC驱动程序的类型(重要)1. Jdbc-odbc 桥2. Native-api partly -java driver1. 本地java驱动程序,将jdbc调用转换为对数据库客户端API的调用3. Net-protocol all-java Driver (Jdbc proxy)4. 将jdbc调用转换为独立于特定数据库的网络协 议,完全java驱动程序4. Native-扌比rotocol all-java driver5. 将JDBC调用转换为特定数据库的网络
5、协议,完 全Java驱动程序I数据库应用模型本地资源桌面应用稈序数据库服务器下载代码| JDBC Drivers 数据库访问DataHVQb和rversI通过JDBC访问数据库1. 建立连接 所有Jdbc程序的第一步都是与数据库建立连接,用户得到 一个 java.sql. Connection 的对象 加载驱动程序,1. 通过设置Java属性中的sql.driver来制定驱动程序列表。这个属 性是一系列的用冒号隔开的匚river类的名称,按照顺序搜索驱 动程序,使用第一个能成功和给定URL相连的驱动程序。2. 使用Class.forName()显式加载驱动程序。例如3. Class.foNam
6、e(“sunjdbc.odbc.JdbcOdbcDive”);加载了 sun公司提供的jdbcodbc桥驱动程丿G由驱动程序负责向 DriverManager登记,在数据库连接时,DriverManager将试图 使用此驱动程序。桌面应用程序数揭库服务器与数据库的连接2.建立连接指定数据库连接的url,数据源的位置使用 DriverMa nager.getC onn ection(url); 例女口: String url= Ujdbc:odbc:datasourcen;Connection conn二DriverManager.getConnection(url); 或者:Conn ecti
7、o nconn=DriverManager.getConnection(String url , String user, String password)了解数据库中的信息在和数据库建立连接后,就可以获得有关数据源的各种 信息:表,列,数据类型,存储过程等。这些信息通过 DatabaseMetaData类的对象上实现的。 DatabaseMetaData dbma=conn.getMetaData();其中提供了很多方法获取数据源的各个方面的信息,这 些方法中,有一些用字符串匹配搜索模式作为参数, 匹配单个字符,“”匹配0个或多个字符.一个值 为nul啲Java String可以与任何字符串
8、匹配.对某些方法,有些驱动程序可能不支持,会产生一个 SQLException 意外.了解数据库中的信息基本信息 getURL(); getUserName() isReadOnly() getDatabaseProduceName()j; getDriverName(); getDriverVersio n();其他 getTables(),getColumns(),getlndexl nfo();查询数据库(Statement)1. 创建 Statement用户执行sql语句, Statement stmt=conn.createStatement();2. 执行查询语句 String s
9、ql=uselect * from customer ResultSet rs=stmt.executeQuery(sql); executeQuery()般用于执行一个sq语句,返回一个结果 集,execute。方法返回多个结果集, 一个Statement对象在同一时间只能打开一个结果集,对第 二个结果集的打开隐含着对第一个结果集的关闭.3. 关 闭Statement stmt.close()查询数据库(PreparedStatement) Statement对象在每次执行sq晤句时都将语句 传给数据库,在多次执行同一个语句时,效率 比较低.可以使用PreparedStatement,使用数
10、据库的预编译功能,速度可以提高很多.jin PreparedStatement对象的sql语句可以接受参 数,每次执行时可以传递不同的参数.查询数据库(PreparedStatement)1. 创建 String sql=uselect * from customer where age=?n PreparedStatement pstmt=conn.prepareStatement(sql);2. 执行 pstmt.setlnt(1,30); ResultSet=pstmt.executeQuery();3. 关闭 Pstmt.close();查询数据库(CallableStatement)
11、用于执行存储过程1. 创建Connection的对象又一个方法prepareCall()可以创建一个 CallableStatement对象,参数格式是” call p roced u re N a m en, K 中 procedureName 是存 储过程的名称上匕如存储过程的名称叫Qureyl,CallableStatementcstmt=conn.prepareCall(ucall Queryl()”);2. 执彳亍 ResultSet rs=cstmt.executeQuery();3. 关闭 cstmt.closeO;I检索结果集前面讲了如何执行sq语句,返回了 ResultSet
12、类的对象 这里讲如何对ResultSet对象进行处理 ResultSet的基本处理方法 ResultSet对象包括一个由查询语句返回的一个表,这个表中 包含所有的查询结果,按照行和列进行处理. ResultSet对象维持一个指向当前行的指针最初,这个指针指 向冕一行之前只esultSet类的next()方法使这个扌旨针衫向卞一 行棗一次強用next()方法,将指针扌旨向结果集胡第一行.next 方法的返向值是一个boolean值,若为true,则成功移向下一行. 若返回false则没有下一行. getXXX方法可以从某一列中获得结果其中XXX是jdbc中的 java数据类型如getlnt();
13、需要制是检素的列,或名称.I检索结果集Statement stmt=c onn .createStatement(); String sql-select a,b,c from mytable: ResultSet rs=stmt.executeQuery(sql); While (rs.next() int i=rs.getlnt(1);String s=rs.getString(ua,J);byte b=rs.getBytes(3);I数据转换 ResultSet结果集中Sql类型和java数据类型之 间的转换比如结果集中,某一列的数据是varchar(30),就 可以使用getStrin
14、g(参裁)方法获取值,比如在SQL Server数据库中,数据类型bit有两 个值1,0,在结果集中,可以用getBoolean(参数) 获取.参照表15-1I数据类型转换表java类型SQL类型booleanBITbyteTINYINTshortSMALLINTintINTEGERlongBIGINTStringCHAR,VARCHAR 丄 0 NGVARCHARbyte arrayBINARY , VAR BINARYjava.sql.DateDATEjava.sql.TimeTIMEjavavSqUimestampI读取较长的值(重要)女 M 可读取 I on gvarcharjongv
15、arbi nary 的值 getString, getBytes有长度限制,Sta怕merit中的setMaxFieldSize设置. ResultSet的对象可以从数据上返回java.ion putStream.获得流后应立即读取,执行next方法后,流将关闭.获取的方法有getBinaryStream,getAsciiStream,get Un icodeStream, getCharacterStream例子Statement stmt=conn.createStatement(); String sql=uselect x from mytable” ResultSet rs=stmt
16、.executeQuery();Byte buff=new byte4096; While(r.next()Inputstream is=rs.getAssicStream(); for(;)int size=is.read(buff); if(size=O) break;获取结果集的信息ResultsetMetaData可以获取结果集中的列的名称,数据类型等. ResultsetMetaData rsmd=rs.getMetaData(); getColumnCount(); getColumnName(int column); getColumnType(int column);返回int
17、值 getColumnTypeName(int column);返回字符 串 isReadOnly(int column) isNullable(int column)I更新数据库包括修改,更新和删除记录,创建和删除表,以及增加和删除列对应于数据库的insert,update delete,create,drop等.对数据库的更新操作也是通过Statement对象完成的.不使用executeQuery()方法,使用 executeUpdate()方法. execute Update的返回值是它影响的记录的行 数.I更新数据库例如 String sql-update Customer set address=Peking where lastname=Lin, int i=Stmt.executeUpdate(sql)返回更新的行数.I参数的输入和输出 Jdbc允许在要执行的sql语句中设置参数,用?代 表参数需要使用 PreparedStatement,CallableStatement.用setXXX()方法给参数赋值.XXX是jdbc数据类 型,第一个参数是位置是1,第二个参数的位置是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB36-T1685-2022-餐饮服务提供者“互联网+明厨亮灶”建设技术规范-江西省
- DB36-T1530-2021-油菜冻害气象等级-江西省
- 法律法规练习测试卷
- 白酒销售管理培训
- 快递绿色培训体系构建
- HSK六级备考指南:2025年高级语法与长文写作模拟试卷
- 甘肃省会宁五中09-10学年高一上学期期末考试(化学)扫描版
- 2025年消防工程师考试综合能力消防设施调试实战演练试题卷
- 2025年执业医师资格考试临床类别实践技能模拟试卷(病史采集与体格检查)-消化内科疾病诊疗案例分析
- IB课程HL经济学2024-2025年模拟试卷:解析市场失灵现象与国际贸易策略
- DL-T684-2012大型发电机变压器继电保护整定计算导则
- DZ/T 0462.7-2023 矿产资源“三率”指标要求 第7部分:石英岩、石英砂岩、脉石英、天然石英砂、粉石英(正式版)
- 2024春期国开电大本科《古代小说戏曲》在线形考(形考任务1至4)试题及答案
- 大学生劳动就业法律问题解读-知到答案、智慧树答案
- MOOC 行政管理学-西北大学 中国大学慕课答案
- 艺术中国智慧树知到期末考试答案2024年
- 提高卧床患者踝泵运动的执行率
- JGJ7-91网架结构设计与施工规程
- 消防设施维护保养记录表
- 【语文】《装在套子里的人》 同步课件 2023-2024学年高一语文(统编版必修下册)
- 太赫兹光纤技术的进展与应用
评论
0/150
提交评论