Java連接MySql數(shù)據(jù)庫,并且實現(xiàn)插入、刪除、更新、選擇操作_第1頁
Java連接MySql數(shù)據(jù)庫,并且實現(xiàn)插入、刪除、更新、選擇操作_第2頁
Java連接MySql數(shù)據(jù)庫,并且實現(xiàn)插入、刪除、更新、選擇操作_第3頁
Java連接MySql數(shù)據(jù)庫,并且實現(xiàn)插入、刪除、更新、選擇操作_第4頁
Java連接MySql數(shù)據(jù)庫,并且實現(xiàn)插入、刪除、更新、選擇操作_第5頁
免費預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、天之火-Qutr的專欄君子終日乾乾,夕惕若,厲,無咎。HomeJava連接MySql數(shù)據(jù)庫,并且實現(xiàn)插入、刪除、更新、選擇操作!這是我最近寫的一個連接MySql數(shù)據(jù)庫的一個例子,主要實現(xiàn)了插入,刪除,更新,選擇操作,用的環(huán)境是j2sdk1.4.2_08,Eclipse3.1。以前我的同事用Python寫了同樣的類,非常的好用,支持了我們公司的大部分業(yè)務(wù),現(xiàn)在我們慢慢改用Java了,所以我用Java重寫了一遍。一方面在今后的業(yè)務(wù)中能夠用到,另一方面熟悉一下Java。下面我把在Eclipse3.1下怎樣配置數(shù)據(jù)庫連接信息簡單說一下。1 .啟動Eclipse3.1o2 .建立一個Javaprojec

2、t叫DbConnect吧,再在該Project下建立一個新類也叫DbConnect吧。3 .右擊DbConnect.java文件點import,選擇Archivefile然后選擇你的mysql-connector-java-3.1.8-bin.jar文件,點Finish。你會看到有好些文件被加載進來,OK這就是連接MySql所需的驅(qū)動信息。如果到了這里你都成功的話那么恭喜你,你已經(jīng)成功一半了!:)4 .接下來把我下面的代碼copy到你的Java文件中,修改相關(guān)的數(shù)據(jù)庫連接信息運行一下。OK?我說一下那個mysql-connector-java-3.1.8-bin.jar文件,其實這就是一個My

3、Sql的驅(qū)動,各數(shù)據(jù)庫廠商提供了不同的適用于JDBC的驅(qū)動使得在Java中連接數(shù)據(jù)庫非常簡單。這里我就不多說了,以后我會寫篇專門介紹數(shù)據(jù)庫驅(qū)動的文章。關(guān)于MySql的驅(qū)動還有更新版本的,你需要到MySql的網(wǎng)站上去下載,這個網(wǎng)上到處都是,我就不多說了。下面看程序,有些地方我寫了詳細的注釋應(yīng)該能看懂。這個類是非常有特色的,在每個方法的傳人參數(shù)和返回值不變的情況下,希望高手能提出改進意見。多指教,謝謝!/*數(shù)據(jù)庫連接、選擇、更新、刪除演示|*/importjava.sql.*;importjava.sql.Connection;importjava.sql.Statement;importjava

4、.sql.ResultSet;importjava.sql.DriverManager;importjava.util.*;publicclassDbConnect/>>>數(shù)據(jù)成員and構(gòu)造函數(shù)privateConnectiondbconn;privateStatementdbstate;privateResultSetdbresult;DbConnect()dbconn=null;dbstate=null;dbresult=null;/>>>類方法publicvoidprint(Stringstr)簡化輸出System.out.println(str);/

5、endprint()/* 連接MySql數(shù)據(jù)庫* paramhost* paramport* paramdbaName* paramusName* parampsw* returnbool值,連接成功返回真,失敗返回假*/publicbooleandbConnection(Stringhost,Stringport,StringdbaName,StringusName,Stringpsw)StringdriverName="com.mysql.jdbc.Driver"/"org.gjt.mm.mysql.Driver”兩個驅(qū)動都可以用StringdbHost=ho

6、st;/微據(jù)庫的一些信息StringdbPort=port;StringdbName=dbaName;StringenCoding="?useUnicode=true&characterEncoding=gb2312”;/單決MySql中文問題,要連續(xù)寫不能空格StringuserName=usName;StringPsw=psw;Stringurl="jdbc:mysql:/"+dbHost+":"+dbPort+"/"+dbName+enCoding;tryClass.forName(driverName).ne

7、wInstance();dbconn=DriverManager.getConnection(url,userName,Psw);/getConnection(url,userName,Psw從給的driver中選擇合適的去連接數(shù)據(jù)庫/returnaconnectiontotheURLcatch(Exceptione)print("url="+url);/發(fā)生錯誤時,將連接數(shù)據(jù)庫信息打印出來print("userName="+userName);print("Psw"+Psw);print("Exception:"

8、+e.getMessage();/馬到出錯信息if(dbconn!=null)/dbconn!=null表示連接數(shù)據(jù)庫成功,由異常保證!?returntrue;elsereturnfalse;/endbooleandbConnection(* 對數(shù)據(jù)庫表進行選擇操作!* paramtableName數(shù)據(jù)庫表名* paramfieles字段名* paramselCondition選擇條件* return一個含有map的List(列表)* /publicArrayListdbSelect(StringtableName,ArrayListfields,StringselCondition)Arra

9、yListmapInList=newArrayList();StringselFields=""for(inti=0;i<fields.size();+i)selFields+=fields.get(i)+","StringselFieldsTem=selFields.substring(0,selFields.length()2);根據(jù)String的索引提取子用trydbstate=dbconn.createStatement();Stringsql="select"+selFieldsTem+"from"

10、+tableName+selCondition;print("sql="+sql);trydbresult=dbstate.executeQuery(sql);catch(Exceptionerr)print("Sql="+sql);print("Exception:"+err.getMessage();while(dbresult.next()MapselResult=newHashMap();selResult.put("message_type",dbresult.getString("messag

11、e_type");selResult.put("message_content",dbresult.getString("message_content");mapInList.add(selResult);catch(Exceptione)print("Exception:"+e.getMessage();IreturnmapInList;/endStringdbSelect()/* 對數(shù)據(jù)庫表中的記錄進行刪除操作* paramtableName* paramcondition* returnbool值,表示刪除成功或者失

12、敗。*/publicbooleandbDelete(StringtableName,Stringcondition)/>>>刪除操作|booleandelResult=false;Stringsql="deletefrom"+tableName+""+condition;trydbstate.executeUpdate(sql);/returnint/intdelRe=?delResult=true;catch(Exceptione)print("sql="+sql);print("Exception:&q

13、uot;+e.getMessage();if(delResult)returntrue;elsereturnfalse;/enddbDelete()/* 對數(shù)據(jù)庫表中記錄進行更新操作* paramtabName* paramreCount* returnbool值,成功返回true,失敗返回false*/publicbooleandbUpdate(StringtabName,HashMapreCount,StringupCondition)booleanupdateResult=false;StringValues=""IteratorkeyValues=reCount.e

14、ntrySet().iterator();for(inti=0;i<reCount.size();+i)Map.Entryentry=(Map.Entry)keyValues.next();Objectkey=entry.getKey();Objectvalue=entry.getValue();Values+=key+"="+"'"+value+"'"+","StringupdateValues=Values.substring(0,Values.length()-2);Stringsql=

15、"update"+tabName+"set"+updateValues+""+upCondition;trydbstate.executeUpdate(sql);updateResult=true;catch(Exceptionerr)print("sql="+sql);print("Exception:"+err.getMessage();if(updateResult)returntrue;elsereturnfalse;/enddbUpdate()/*對數(shù)據(jù)庫表進行插入操作*paramta

16、bName*paramhmreturnbool值,成功返回true,失敗返回false*/publicbooleandbInsert(StringtabName,HashMapvalues)elsereturnfalse;/enddbInsert()/*斷開數(shù)據(jù)庫Stringsql=""StringinsertFields="",temFields=""Stringinsertvalues="",temValues=""booleaninsertResult=false;IteratorkeyV

17、alues=values.entrySet().iterator();for(inti=0;i<values.size();+i)Map.Entryentry=(Map.Entry)keyValues.next();Objectkey=entry.getKey();Objectvalue=entry.getValue();temFields+=key+","temValues+="'"+value+"'"+","insertFields=temFields.substring(0,temFie

18、lds.length()-2);insertValues=temValues.substring(0,temValues.length()-2);sql+="insertinto"+tabName+"("+insertFields+")values"+"("+insertValues+")"trydbstate.executeUpdate(sql);insertResult=true;catch(Exceptione)print("Sql="+sql);print("

19、;Exception:"+e.getMessage();if(insertResult)returntrue;升if(closeResult)returntrue;elsereturnfalse;/enddbClose()/>>>入口主函數(shù)publicstaticvoidmain(String口args)DbConnectdc=newDbConnect();/連接數(shù)據(jù)庫用到的一些參數(shù).StringdbHost="localhost"StringdbPort="3306"StringdbName="feast"

20、;StringdbuserName="root"Stringdbpsw=""booleancon=dc.dbConnection(dbHost,dbPort,dbName,dbuserName,dbpsw);/連接數(shù)據(jù)庫if(con)ArrayListfields=newArrayList();fields.add("message_content");fields.add("message_type");Maplmap=newHashMap();StringselCondition="wheremess

21、age_type=1limit2"ArrayListstr=dc.dbSelect("feast",fields,selCondition);/>>>選擇t己if(str.size()!=0)dc.print("selectOK!");dc.print("str'ssize="+str.size();booleandel=dc.dbDelete(tableName,cond讓ion);/->>>刪除數(shù)據(jù)if(del)dc.print("deleteok");el

22、sedc.print("deleteerror!");HashMapm=newHashMap();m.put("messagecontent","ookkk");m.put("message_number","9");StringupCondition="wheremessage_type=4"booleanur=dc.dbUpdate("feast",m,upCondition);/->>>更新數(shù)據(jù)if(ur)dc.print("updateOK");elsedc.print("updateerror!");HashMapmm=newHashMap();mm.put("message_number","6");mm.put("message_content&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論