ImageVerifierCode 换一换
格式:DOCX , 页数:66 ,大小:79.93KB ,
资源ID:15491075      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15491075.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JDBC讲课流程.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

JDBC讲课流程.docx

1、JDBC讲课流程DBC讲课流程第一课JDBC概述和基本数据库操作JDB(jaa daasecnectity)用于在java程序中实现数据库操作的数据库编程接口,支持基本的S语句,为应用程序和数据库之间提供了桥梁java程序和数据库之间的关系如下图:JDBC的版本:JDK1.4,1.5对应DBC.0JDK1.6对应BC4.0介绍ja中和操作数据库相关的AP,解释这些API都是未实现的,真正实现操作的是数据库厂家提供的类库,例如acle提供的class.ja,sl sever提供的sqlsrver.ja等。将oracle安装文件下的cses2.jr文件构建到myeclpe开发工具下。开始数据库编程

2、:(别忘先导入包)第一步 加载数据库驱动程序Class.forNe(oacle.jdb.rerraleriver);这是利用反射注册一个数据库驱动或者用驱动管理器也可以注册数据库驱动iveMnae.regsteDiver(new racle.jb.r.aclrve();第二步 创建数据库连接对象Strin urldc:orale:tn:12.00.:521:hc;trng use = sct;ri d =tger;Conction conn = riverManage.eonecion(ul,se,d);其中dhc表示的是数据库名或域名而并非是服务名Drivernag 类存有已注册的Dver

3、类的清单。当调用方法eCni 时,它将检查清单中的每个驱动程序,直到找到可与UR 中指定的数据库进行连接的驱动程序为止。如果改成用OC形式连接,url字符串改为类似以下语句:tin url = jdc:rle:oci:sot/tiedhc;或者String ul b:orace:oci:sott/tgerhc;第三步 创建QL语句载体对象Sttemen tm= conn.creatStatement();第四步 执行SQL语句返回结果集对象ResulSet =stmt.ecuteQuery(selet * fom employes);第五步 遍历结果集返回数据while (() System.

4、ou.print(编号:+rs.eIn(1) t姓名: +.gSrig());在这一步讲解结果集指针的概念,默认状态下游标只能向下移动需要注意XXX方法的数据类型要和表中字段的数据类型兼容。讲解gtXXX()括号中的参数既可以是列索引,也可以是列名,如果使用列名并且结果集中有多个列的名字是相同的,那么返回第一列的的列值,一般用列索引效率会高一些介绍rs.wasNl方法,当前最后一次getXXX()返回的列值是否为nul,需要注意的是如果get方法以数字的形式获取列值且返回的列值为null,得到的结果会自动的转换为0或0.0别忘记在下面介绍java的数据类型和SQ的数据类型之间的映射关系第六步

5、关闭对象释放资源采取逆向关闭对象的顺序rlos();stmt.ce();on.close();在关闭smt对象或利用smt对象重新执行其他SQL语句时时会自动关闭rs对象。解讲数据类型之间的映射关系SQL类型JVA类型CHAtringREALFtATALNKjavane.UREFRefTUCtrucDISTINCppnferlynpeARRAArayBLOBBloLBClbIMTAMPjav.l.TietampTIMEjava.TmeDATEjava.qDateLONGVAINARYbyteVRBINARYbytBIAYbyeDUBEdubLOAToublVCHSngONGARCHSing以上

6、操作的完整代码:ipor jva.sql.;public classJDBC1 pbic sati voi mn(String ag) throw SQLEceptin /注册数据库驱动程序 rivengr.gtDrver(e oracl.jd.divrOrleDrver(); /创建数据库连接对象 Stringurl =dbc:orace:tin:127.0.1:1521:dhc; tng user=sott; tin pd = tiger; Conecion onn DrverMnage.geCnnection(r,use, pwd); /创建SQ语句载体对象 Staeent stmt n

7、.craeStatent();/返回结果集对象 ResSet s = stmt.xeutQuery(slec * fro ployees); 遍历结果集返回数据 while (.x() Systeout.prntl(编号: +s.getnt(1) 姓名: + rs.gtString(3); /关闭对象 rslo(); stmt.cloe(); onn.close(); 经过优化的代码:imr java.sq*;pubi las BC puic tatic oid main(tringrgs) Conecon conn null; Statement smt null;RsltS s = ull

8、;try /注册数据库驱动程序 DrieManag.gisterDiver(new raclejdb.drer.OraclDrive(); 创建数据库连接对象 Stingur= jbc:orace:thin:17.0.1:21:hc; Strin ser= scott; rngpwd tiger; conn =DrveMnae.etConectin(url,ser, pwd);/ 创建SQL语句载体对象 tm = con.eatStateent(); / 返回结果集对象 rs=stt.eecuQue(sletrm emploees); / 遍历结果集返回数据 wile(snxt() ystm.

9、outprntln(编号: + rs.getInt() + t姓名: + rs.geStr(); catch (SQLxceptio e) e.printStakTrc(); finall tr / 关闭对象 if(r != ull) rs.close(); if (stmt != null) mt.cle(); if (conn != nul) onn.close(); catch (Sxcpion e) e.rintacTrac(); 练习:查询epartments表中的090号部门信息(部门编号,部门名称,部门管理者姓名,部门所在城市)impo jaa.sl.;publc clas Te

10、s6 pbli stt vod main(Strin arg) Coectioconn = null;Statent stt = nu; tSetrs =null;t riernage.rgisterDiver(new oracle.jdc.driveOacleDrier()); ring r jdbc:race:thin:loalhos:121:hc; Str user = sct;Sting pwd tger; conn= DivrManger.geConnctio(rl, user,pwd); stmt = conn.ceteStaten(); s = stmt exeteQuy(slc

11、 ddeatmt_i,depatmen_name,l_nm,ct frm departmens d,emploes e,locationslhe anager_ide.emloee_id() n d.loaoni=l.loaton_id nd.deptmentbewen an 90 ordrby d.artni); whi (r.nt()) System.ot.rin(rs.geIt(1)+ r.geStrng(2) + rsetStr() +rs.gettring()); cath (SQLEcpio) e.prntStacTae(); finlly ty if (rs != null) r

12、s.close(); f (stmt !=ull) mt.lose(); f(c != nul) conn.clse(); cah (Eepione) prnStackTr(); 综合练习:查询job_hstry表中所有数据,将数据写入到文本文件中,一条记录一行,列值之间用隔开imrt av.l.*;ipor jva.io.*;ulic las Test puc tic oid an(Stinar) Cnectnconn = ull; State stmt = null;esultt rs =null; fw = ull;Bufferedrierbw = nll; tr DrierManagr

13、.rgirDrver(nw orcljdbcdrver.raceDrier()); Stingul = jdbc:orce:tn:loalht:121:dc; Strig user ctt; ring pwd = tier; conn = DriverMnager.gtConntn(ur, usr,pwd);smt= onncreteSaement(); rs = sm.xecuteQur(seect * fromjohist); fw n (e:job_historytx); w=ewuferedWritr(fw); while (rs.next()) b.writ(rs.etnt(1) +

14、 +rs.etString(2) + rs.gettring(3) + | r.getStrig() + | r.tI(5)); bw.nine(); ach (Lceptin e) printStackrac(); cach (Icetion e) epitStackrce(); fnaly ry if (bw!= null) bw.ose(); (rs !=null) s.cose(); f(stm!= nul) smt.close(); if (cnn != null) c.cos(); catc(Excepion e) e.priaTace(); 第二课数据增删改和可滚动结果集讲述at

15、ement对象执行SL语句的三种方法:eceQury() 执行查询单个结果集的语句,该语句返回单个 ulSt 对象ecteUpdae() 执行给定SQL 语句,该语句可能为 NSERT、UPATE或 ELETE语句,或者不返回任何内容的 SQL语句(如SQL L 语句),该语句返回影响的行数,如果是DL语句则返回0excute() 执行给定的SQ 语句,这个QL语句可能实现并不知道是查询还是增删改,返回值是布尔值,如果是查询语句返回结果则为tr,可以用Resulte得到Rse 结果创建一个学生表做数据增删改试验:create table Sten(imber,sname vrar(50),ad

16、dDate dte);演示增加学生数据impot jav.sql.;ulc classTs pbic static odmain(tring args) Connectinon =nul; Statemntstt = ull; ry riManager.regiseDriver(newrale.jdbc.driver.raleDrier();Srgrl dbc:oracle:tin:localhot:21:dhc; Sting uer = scott; Strng pwd = tie; con= DriverManagr.geCoectio(url, uer, ); stt connreeta

17、tet(); nt = m exeuteUpdat(inse itotudent valus(1,tom,to_dte(08-3-,yyym-dd); Systmou.n(操作了 + + 行); ctch (QLExepton e) erStackTrace(); y ty i (stmt !=nll) smt.lose(); f (co !ull) onn.ose(); cach(Exception e) .rntStackTr(); 演示修改学生数据:in= mt exeuteae(updte tudent s snaejac,addate=odae(2007-3-1,yyyy-m-d)

18、wheresid=10);ystem.ou.pintn(操作了 + i 行);学生自己动手改成删除1学生数据:ni stmt xecuteUpd(deleterom Suen heeid=101);Stm.ou.pitl(操作了 + i + 行);学生试验执行DD语句删除表:int = smt .executeUpat(d abletudent);Sem.ou.pritln(操作了+ i+ 行);学生练习:提供一个原始文本文件udenttxt,将文本文件中的数据导入到数据库中的表中tudent.txt文件内容11,tom,2008-31102,ck,202103,s,2008-3-31,smi

19、th,2008-05,john,2008-3-5106,za,008-607,li,0-imp jaa.sl*;iport java.io.;public classTs10 pblicsat od mai(tringar) thws xcetion Connctio on null; Sateme tmt nll; Reultet r= nul; rivernge.regsterDrier(w aclejdbc.ivr.Orarver(); Stingurl = jdc:rcle:ti:locals:1521:dc;Singuser = scott; Strin pwd tiger; on

20、= DriverManaegetConnectio(ul,usr, pwd);stmt = concreateStatement(Rsultet.TYPESCRLINSENSIVE, RsultSe.CONR_UPDATABL); f= ne (:Studenttxt);ufredReader br = ne BffeedReadr(fr); trings=r.redLie(); hile(s ! u) Sing rows s.pit(,); stmtexeutedate(inrt ito tde vlues ( + ws0 + , + row1 + ,to_d( rows2+,yyy-mm-

21、dd))); s = br.reaLine(); r.ce();stt.close(); con.close();讲解可滚动的结果集游标指针Conction对象创建tament对象有两种形式:一种是用createStateent()无参方法,这种方法创建的Statemet对象执行的查询的结果集指针只能向下移动另一种方法是用crateatement(insulteType, in esultStncurency)有参方法,这种方法创建的tatement对象执行的查询结果集的指针是可以任意移动的后一种方法有两个参数:分别是结果集游标类型和结果集是否可更新结果集游标类型有三个设置值:1.eslSTP

22、EFORWRDNL 指针只能向下移动(默认)2.ResultSt.YPE_SO_INSENTVE指针可任意滚动,但结果集中被更新的行不可视3.ResultSet.TYPECROLL_SENSIVE 指针可任意滚动,结果集中被更新的行可视结果集是否可更新有两个设置值:1.RestetONCR_AD_ONY 只读(默认)2.RultSet.ONUR_PDATABLE可更新记录关于指针移动的方法:默认打开结果集的时候指针位于第一行记录的上面nex() 下一行previous() 上一行firs()第一行last() 最后一行asout(n)定位到第n条reltive(n) 相对于当前指针位置定位到第条,n为正数下移,n为负数上移bfreirst() 第一条的前面afteLat() 最后一条的后面etRow()获得当前行的行号学生练习:查询出工资排名在第6位到第10位的员工编号,姓名和工资stmt= conn.ceaeStateme(ResuletTYP_SCRL_INSEITV,Reslte.ONCURDOLY);rs = stmt.executeQuery(elec * frommloes oderby saary desc);f(rs.abue()fo (in i= 6; i 0; i+) Sytemout.prinln(i :t s.tn(1) /

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2