《Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之03JDBC Statement6299.docx》由会员分享,可在线阅读,更多相关《Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之03JDBC Statement6299.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之03.JDBC Statement(1)上季我们建建立了与与数据库库的连接接,本季季我们将将对数据据库进行行操作使使用Sttateemennt 执执行DDDL、使使用Sttateemennt 执执行DMML,常常用的插插入、更更新、删删除及查查询数据据哈 Staatemmentt 简介介Stattemeent 提供了了一个操操作数据据库语句句的功能能,可通通过它来来创建表表、插入入记录、修修改记录录、删除除记录等等操作 获得SStattemeent可以从数数据库连连接Coonneectiion中中获得SStatteme
2、entConneectiion connn = neew CConnnecttionnUtiil().geetCoonneectiion();Staatemmentt sttmt = cconnn.crreatteSttateemennt();ConneectiionUUtill.jaavapackaage comm.miichaael.jdbbc;impportt jaava.sqll.Coonneectiion;immporrt jjavaa.sqql.DDrivverMManaagerr;iimpoort javva.uutill.Prropeertiies;puubliiccllass
3、s CoonneectiionUUtill /第一一种方法法pubblicc Coonneectiion gettConnnecctioon()Connnecctioon cconnn = nulll;trry /Claass.forrNamme加载载驱动Claass.forrNamme(comm.myysqll.jddbc.Driiverr);/DriiverrMannageer获得得连接connn = DrriveerMaanagger.gettConnnecctioon(jdbbc:mmysqql:/loocallhosst:333066/jddbc_db,rroott,myssqlaa
4、dmiin);rretuurn connn; cattch (Exxcepptioon ee) e.priintSStacckTrracee();rretuurnnnulll;/第二二种方法法pubblicc Coonneectiion gettConnnecctioon(SStriing driiverr,Sttrinng uurl,Strringg usser,Strringg paasswwordd)Coonneectiion connn = nuull;ttry /Cllasss.foorNaame加加载驱动动Cllasss.foorNaame(driiverr);/DDrivverM
5、Manaagerr获得连连接cconnn = DriiverrMannageer.ggetCConnnecttionn(urrl,uuserr,paasswwordd);retturnn coonn; caatchh (EExceeptiion e) ee.prrinttStaackTTracce();retturnnnulll;/第第三种方方法puubliic CConnnecttionn oppenCConnnecttionn()SStriing driiverr = ;SStriing urll = ;SStriing useer = ;Strringg paasswwordd = ;P
6、Propperttiess prrop = nnew Prooperrtiees();Connnecctioon cconnn = nulll;trry /加载属属性文件件prrop.loaad(tthiss.geetCllasss().gettClaassLLoadder().ggetRResoourcceAssStrreamm(DDBCoonfiig.ppropperttiess);ddrivver = ppropp.geetPrropeertyy(ddrivver);urll = proop.ggetPProppertty(urll);usser = ppropp.geetPrropee
7、rtyy(uuserr);paasswwordd = proop.ggetPProppertty(passswoord);/CClasss.fforNNamee加载驱驱动CClasss.fforNNamee(drriveer);/DriiverrMannageer获得得连接connn = DrriveerMaanagger.gettConnnecctioon(uurl,useer,ppasssworrd);reeturrn cconnn; ccatcch (Exccepttionn e) e.pprinntSttackkTraace();retturnnnulll; TestSStatteme
8、ent.javvapackaage comm.miichaael.jdbbc;impportt jaava.sqll.Coonneectiion;immporrt jjavaa.sqql.SSQLEExceeptiion;immporrt jjavaa.sqql.SStattemeent;puubliiccllasss TeestSStattemeent puubliicsttatiicvooid gettStaatemmentt()CConnnecttionn coonn = nnew ConnnecctioonUttil().oopennConnnecctioon();tryy Staat
9、emmentt sttmt = cconnn.crreatteSttateemennt();SSysttem.outt.prrinttln(stmmt); caatchh (SSQLEExceeptiion e) / TTODOO Auuto-genneraatedd caatchh bllockke.priintSStacckTrracee(); Main.javvapackaage comm.miichaael.maiin;impportt coom.mmichhaell.jddbc.ConnnecctioonUttil;immporrt ccom.micchaeel.jjdbcc.Tee
10、stSStattemeent;puubliiccllasss Maain /* * pparaam aargss */pubbliccstaaticcvoiid mmainn(Sttrinng arrgs) CoonneectiionUUtill cuu = neww CoonneectiionUUtill();/第一一种方法法SSysttem.outt.prrinttln(第一一种方法法:+cu.gettConnnecctioon();/第二种种方法Syysteem.oout.priintlln(第二种种方法:+ccu.ggetCConnnecttionn(ccom.myssql.jdbbc
11、.DDrivver,jddbc:myssql:/llocaalhoost:33006/jjdbcc_dbb,rooot,myysqlladmmin);/第三三种方法法SSysttem.outt.prrinttln(第三三种方法法:+cu.opeenCoonneectiion();TTesttStaatemmentt.geetSttateemennt(); 测试结果: 使用SStattemeent 执行DDDL可以使用用Staatemmentt来执行行一个数数据定义义语句,例例如:创创建一张张表TestSStattemeent.javvapackaage comm.miichaael.jdbbc
12、;impportt jaava.sqll.Coonneectiion;immporrt jjavaa.sqql.SSQLEExceeptiion;immporrt jjavaa.sqql.SStattemeent;puubliiccllasss TeestSStattemeent puubliicsttatiicvooid gettStaatemmentt()CConnnecttionn coonn = nnew ConnnecctioonUttil().oopennConnnecctioon();tryy Staatemmentt sttmt = cconnn.crreatteSttatee
13、mennt();SSysttem.outt.prrinttln(stmmt); caatchh (SSQLEExceeptiion e) / TTODOO Auuto-genneraatedd caatchh bllockke.priintSStacckTrracee();puubliicsttatiicvooid creeateeTabble()/DDLL数据定定义语句句CConnnecttionn coonn = nnew ConnnecctioonUttil().oopennConnnecctioon();Strringg sqql = ccreaate tabble Cusstomme
14、rTTbl(id intt prrimaary keyy auuto_inccremmentt,naame varrchaar(220),emaail varrchaar(220);trry Sttateemennt sstmtt = connn.ccreaateSStattemeent();/执执行SQQL语句句sttmt.exeecutte(ssql); ccatcch (SQLLExccepttionn e) / TODDO AAutoo-geenerrateed ccatcch bblocckee.prrinttStaackTTracce();fiinalllyiff(coonn!=n
15、uull)tryy coonn.cloose(); caatchh (SSQLEExceeptiion e) connn = nuull;ee.prrinttStaackTTracce(); Main.javvapackaage comm.miichaael.maiin;impportt coom.mmichhaell.jddbc.ConnnecctioonUttil;immporrt ccom.micchaeel.jjdbcc.TeestSStattemeent;puubliiccllasss Maain /* * pparaam aargss */pubbliccstaaticcvoiid
16、 mmainn(Sttrinng arrgs) CoonneectiionUUtill cuu = neww CoonneectiionUUtill();/第一一种方法法SSysttem.outt.prrinttln(第一一种方法法:+cu.gettConnnecctioon();/第二种种方法Syysteem.oout.priintlln(第二种种方法:+ccu.ggetCConnnecttionn(ccom.myssql.jdbbc.DDrivver,jddbc:myssql:/llocaalhoost:33006/jjdbcc_dbb,rooot,myysqlladmmin);/第三三种
17、方法法SSysttem.outt.prrinttln(第三三种方法法:+cu.opeenCoonneectiion();TTesttStaatemmentt.geetSttateemennt();TesstSttateemennt.ccreaateTTablle(); 测试结果: 使用SStattemeent 执行DDML更新 Innserrt TestSStattemeent.javvapackaage comm.miichaael.jdbbc;impportt jaava.sqll.Coonneectiion;immporrt jjavaa.sqql.SSQLEExceeptiion;im
18、mporrt jjavaa.sqql.SStattemeent;puubliiccllasss TeestSStattemeent puubliicsttatiicvooid gettStaatemmentt()CConnnecttionn coonn = nnew ConnnecctioonUttil().oopennConnnecctioon();tryy Staatemmentt sttmt = cconnn.crreatteSttateemennt();SSysttem.outt.prrinttln(stmmt); caatchh (SSQLEExceeptiion e) / TTOD
19、OO Auuto-genneraatedd caatchh bllockke.priintSStacckTrracee();puubliicsttatiicvooid creeateeTabble()/DDLL数据定定义语句句CConnnecttionn coonn = nnew ConnnecctioonUttil().oopennConnnecctioon();Strringg sqql = ccreaate tabble CusstommerTTbl(id intt prrimaary keyy auuto_inccremmentt,naame varrchaar(220),emaail
20、 varrchaar(220);trry Sttateemennt sstmtt = connn.ccreaateSStattemeent();/执执行SQQL语句句sttmt.exeecutte(ssql); ccatcch (SQLLExccepttionn e) / TODDO AAutoo-geenerrateed ccatcch bblocckee.prrinttStaackTTracce();fiinalllyiff(coonn!=nuull)tryy coonn.cloose(); caatchh (SSQLEExceeptiion e) connn = nuull;ee.prr
21、inttStaackTTracce();/DDML数数据操作作语句-CRRUD:creeatee、reetriive、uupdaate、ddeleeteppubllicsstatticvvoidd teestIInseert()/DDLL数据定定义语句句CConnnecttionn coonn = nnew ConnnecctioonUttil().oopennConnnecctioon();Strringg sqql = iinseert intto CCusttomeerTbbl(nnamee,emmaill) vvaluues(Miichaael,mmichhaellm);tryy St
22、aatemmentt sttmt = cconnn.crreatteSttateemennt();/执行行SQLL语句stmmt.eexeccuteeUpddatee(sqql); caatchh (SSQLEExceeptiion e) / TTODOO Auuto-genneraatedd caatchh bllockke.priintSStacckTrracee();finnalllyif(cconnn!=nnulll)trry cconnn.cllosee(); ccatcch (SQLLExccepttionn e) coonn = nnulll;e.pprinntSttackkTr
23、aace(); Main.javvapackaage comm.miichaael.maiin;impportt coom.mmichhaell.jddbc.ConnnecctioonUttil;immporrt ccom.micchaeel.jjdbcc.TeestSStattemeent;puubliiccllasss Maain /* * pparaam aargss */pubbliccstaaticcvoiid mmainn(Sttrinng arrgs) CoonneectiionUUtill cuu = neww CoonneectiionUUtill();/第一一种方法法SSy
24、sttem.outt.prrinttln(第一一种方法法:+cu.gettConnnecctioon();/第二种种方法Syysteem.oout.priintlln(第二种种方法:+ccu.ggetCConnnecttionn(ccom.myssql.jdbbc.DDrivver,jddbc:myssql:/llocaalhoost:33006/jjdbcc_dbb,rooot,myysqlladmmin);/第三三种方法法SSysttem.outt.prrinttln(第三三种方法法:+cu.opeenCoonneectiion();TTesttStaatemmentt.geetSttateemennt();/TTesttStaatemmentt.crreatteTaablee();TTesttStaatemmentt.teestIInseert(); 测试结果: