第一篇:學(xué)習(xí)心得(數(shù)據(jù)庫(kù)操作與socket)專(zhuān)題
學(xué)習(xí)心得
——數(shù)據(jù)庫(kù)操作與socket 編程目的:
編寫(xiě)一個(gè)java程序,應(yīng)用socket,用客戶端發(fā)送信息,服務(wù)器端以用戶icstest身份連接數(shù)據(jù)庫(kù)ordb3,并根據(jù)客戶端發(fā)送的信息,對(duì)數(shù)據(jù)庫(kù)ordb3中的表tbl_brh_info進(jìn)行增刪改查的工作。如果操作為查詢(xún),則在客戶端打印查詢(xún)結(jié)果,并把查詢(xún)記錄寫(xiě)進(jìn)文件。編程過(guò)程:
運(yùn)用JDBC連接數(shù)據(jù)庫(kù),完成數(shù)據(jù)庫(kù)相關(guān)操作
使用socket套接字搭建C/S環(huán)境
使用多線程知識(shí)達(dá)到多用戶的功能 程序結(jié)構(gòu):
主要代碼:
創(chuàng)建javabean,為實(shí)現(xiàn)多線程,繼承了Serializable接口(Brh.java)
加載JDBC驅(qū)動(dòng),連接數(shù)據(jù)庫(kù)(DBmanager.java)
數(shù)據(jù)庫(kù)相關(guān)操作(Dao.java)
建立客戶端(Client.java)
建立服務(wù)器端,并建立線程與客戶端連接(Server.java)
服務(wù)器線程(ServerThread.java)
運(yùn)行過(guò)程:
1.開(kāi)啟服務(wù)器端,準(zhǔn)備接收客戶端連接;
2.開(kāi)啟客戶端,服務(wù)器端建立線程與客戶端連接;
3.客戶端顯示提示信息(1.查詢(xún)機(jī)構(gòu)2.添加機(jī)構(gòu)3.編輯機(jī)構(gòu)4.刪除機(jī)構(gòu)0.退出
請(qǐng)選擇業(yè)務(wù)(1-4):),根據(jù)提示信息,選擇相關(guān)業(yè)務(wù);
4.根據(jù)所選業(yè)務(wù)進(jìn)行相關(guān)操作;
(查詢(xún)刪除編輯時(shí),會(huì)驗(yàn)證是否有該數(shù)據(jù);
添加編輯過(guò)程中,會(huì)對(duì)所添加內(nèi)容進(jìn)行驗(yàn)證,以滿足格式要求; 查詢(xún)出的信息會(huì)寫(xiě)入查詢(xún)記錄文件D:brhbrh_info.txt)
5.操作結(jié)束后,根據(jù)提示信息退出(輸入“0”),退出時(shí)會(huì)關(guān)閉該客戶端socket,相關(guān)的輸入輸出流及程序;
6.服務(wù)器端等待下次客戶端連接,直到手動(dòng)關(guān)閉。
部分截圖:
服務(wù)器端
客戶端
遇到問(wèn)題:
1.對(duì)象無(wú)法傳遞;
原因:沒(méi)有對(duì)對(duì)象進(jìn)行序列化;
解決:Brh類(lèi)繼承Serializable接口。
2.第二天連接時(shí)客戶端無(wú)法連接上;
原因:動(dòng)態(tài)獲取IP,導(dǎo)致IP地址改變; 解決:改寫(xiě)代碼為當(dāng)前IP。
3.在客戶端提示信息后輸入中文出錯(cuò)(直接輸入中文,先輸入字母或數(shù)字再輸入中文不會(huì)報(bào)錯(cuò));
原因:原因不明,而且并非程序報(bào)錯(cuò),只是不能輸入,仔細(xì)檢查后,確定不是代碼問(wèn)題,也許是IDE原因。疑為輸入法問(wèn)題,因?yàn)榍袚Q到其他輸入法后(智能ABC和微軟拼音都試過(guò),原為搜狗拼音),直接輸入數(shù)字也會(huì)出錯(cuò);
解決:尚未解決。
經(jīng)驗(yàn)心得:
在本次練習(xí)中,通過(guò)程序的編寫(xiě),調(diào)試,修改等過(guò)程,收獲到不少東西,其中主要有:
1)鞏固以前的知識(shí)。運(yùn)用JDBC連接數(shù)據(jù)庫(kù),編寫(xiě)字符界面和驗(yàn)證所用的JAVA基本語(yǔ)句,以及輸入輸出流,序列化和反序列化等,都是一些常用和基礎(chǔ)的知識(shí),通過(guò)本次程序進(jìn)一步熟練;
2)學(xué)習(xí)一些以前不熟悉或不會(huì)的知識(shí)。在本次的程序編寫(xiě)中,對(duì)于多線程及socket一塊的知識(shí),雖然以前也有接觸學(xué)習(xí)過(guò)。但掌握不深,不夠熟練。但通過(guò)查閱資料,完成了本次的應(yīng)用,還對(duì)這類(lèi)知識(shí)在本次程序中沒(méi)用用到的部分,進(jìn)行了深入的學(xué)習(xí),以便在下次遇到該類(lèi)問(wèn)題時(shí)能應(yīng)對(duì);
3)在本次程序編寫(xiě)過(guò)程中,最大的收獲得益于查閱資料學(xué)習(xí)的過(guò)程。在面對(duì)無(wú)法解決
第二篇:數(shù)據(jù)庫(kù)操作
Excel技巧:Excel如何快速統(tǒng)計(jì)各銷(xiāo)售人員的銷(xiāo)售總金額?
繼續(xù)解決Q群小伙伴提出的問(wèn)題,Excel如何快速統(tǒng)計(jì)各銷(xiāo)售人員的銷(xiāo)售總金額?題目問(wèn)得好像是個(gè)銷(xiāo)售問(wèn)題,其實(shí)針對(duì)各種分類(lèi)匯總的數(shù)據(jù)統(tǒng)計(jì)。這次用透視表的方法給大家分享一下快速統(tǒng)計(jì)的方法。
場(chǎng)景:適合財(cái)務(wù)、銷(xiāo)售、HR等數(shù)據(jù)統(tǒng)計(jì)的辦公人士。問(wèn)題:Excel如何快速統(tǒng)計(jì)各銷(xiāo)售人員的銷(xiāo)售總金額? 解答:利用Excel的數(shù)據(jù)透視表搞定!
具體操作如下:將光標(biāo)放置于銷(xiāo)售人員銷(xiāo)售表格區(qū)域中任意單元格,然后再插入選項(xiàng)卡中點(diǎn)擊“數(shù)據(jù)透視表”功能。
第三篇:操作數(shù)據(jù)庫(kù)小結(jié)
一.查詢(xún)操作
對(duì)數(shù)據(jù)進(jìn)行查詢(xún)操作時(shí),有兩種情況:一是查詢(xún)單個(gè)值,二是 查詢(xún)?nèi)舾蓷l記錄。
1、查詢(xún)單個(gè)值
需要使用Command對(duì)象的ExecuteScalar()方法:步驟如下:(1)、創(chuàng)建Connection對(duì)象(數(shù)據(jù)庫(kù)連接對(duì)象)。(2)、創(chuàng)建查詢(xún)用的SQL語(yǔ)句。(3)、利用SQL語(yǔ)句和Connection對(duì)象創(chuàng)建Command對(duì)象。(4)、打開(kāi)數(shù)據(jù)庫(kù)連接,調(diào)用Connection對(duì)象的Open()方法。(5)、調(diào)用Command對(duì)象的ExecuteScalar()方法,返回一個(gè)標(biāo)量值。(6)、操作完成后關(guān)閉數(shù)據(jù)庫(kù)連接,調(diào)用Connection對(duì)象的Close()方法。
2、查詢(xún)?nèi)舾蓷l記錄
需要使用Command對(duì)象的ExecuteReader()方法:步驟如下:(1)、創(chuàng)建Connection對(duì)象(數(shù)據(jù)庫(kù)連接對(duì)象)。(2)、創(chuàng)建查詢(xún)用的SQL語(yǔ)句。(3)、利用SQL語(yǔ)句和Connection對(duì)象創(chuàng)建Command對(duì)象。(4)、打開(kāi)數(shù)據(jù)庫(kù)連接,調(diào)用Connection對(duì)象的Open()方法。(5)、調(diào)用Command對(duì)象的ExecuteReader()方法,返回一個(gè)DataReader對(duì)象。(6)、調(diào)用DataReader對(duì)象的Read()方法逐行讀取記錄,如果讀到記錄返回Ture,否則返回False.(7)、使用(type)dataReader[列名或索引]的方式讀取這一行中某一列的值。(8)、關(guān)閉DataReader對(duì)象(9)、操作完成后關(guān)閉數(shù)據(jù)路連接,調(diào)用Connection對(duì)象的Close()方法。
二、非查詢(xún)操作
對(duì)數(shù)據(jù)庫(kù)執(zhí)行非查詢(xún)操作時(shí),包括增加,修改,刪除數(shù)據(jù),都使用Command對(duì)象的ExecuteNonQuery()方法,步驟如下:
(1)、創(chuàng)建Connection對(duì)象(數(shù)據(jù)庫(kù)連接對(duì)象)(2)、創(chuàng)建增刪改用的SQL語(yǔ)句。(3)、利用SQL語(yǔ)句和Connection對(duì)象創(chuàng)建Command對(duì)象。(4)、打開(kāi)數(shù)據(jù)庫(kù)連接,調(diào)用Connection對(duì)象的Open()方法。(5)、調(diào)用Command對(duì)象的ExecuteNonQuery()方法執(zhí)行命令,返回受影響的行數(shù)。(6)、操作完成后關(guān)閉數(shù)據(jù)庫(kù)連接,調(diào)用Connection對(duì)象的Close()方法。
本章總結(jié)
1、使用DataReader查詢(xún)數(shù)據(jù)記錄,通過(guò)Command對(duì)象的ExecuteReader()方法返回一個(gè)DataReader對(duì)象。
2、使用DataReader讀取數(shù)據(jù)室每次調(diào)用Read()方法讀取一行數(shù)據(jù)。
3、DataReader使用完后要調(diào)用它的Close()方法關(guān)閉。
4、使用Command對(duì)象的ExecuteNonQuery()方法對(duì)數(shù)據(jù)進(jìn)行增刪改的操作。
5、ExecuteNonQuery()方法返回受影響的行數(shù)。
6、ListView(列表視圖)控件有5種視圖模式,重點(diǎn)是Details 列表視圖的Items屬性表示包含在空間中的所有項(xiàng)的結(jié)合,每一個(gè)項(xiàng)都是一個(gè)ListViewItem,使用Items.Add()方法向列表視圖中添加一項(xiàng) 調(diào)用列表視圖項(xiàng)的SubItems.AddRange()方法添加它的子項(xiàng)
ListViewItem lviStudent = new ListViewItem(loginID);創(chuàng)建一個(gè)ListView項(xiàng) lviStudent.Tag=(int)dataReader[“StudentId”];lvStudent.Items.Add(lviStudent);//向ListView中添加一個(gè)新項(xiàng) lviStudent.SubItems.AddRange(new string[] {studentName,studentNo,userState});//向當(dāng)前項(xiàng)中添加子項(xiàng)
7、ContextMenuStrip(快捷菜單)控件可以與其他控件結(jié)合使用,通過(guò)設(shè)置控件的ContextMenuStrip屬性來(lái)指定它的快捷菜單。
想鼠標(biāo)右鍵單擊文本框時(shí)出現(xiàn)快捷菜單,就選中文本框?在屬性窗口中找到它的ContextMenuStrip屬性,選擇已有的右鍵菜單控件 txtLoginId.Focus():?
下拉列表:
創(chuàng)建Command對(duì)象?調(diào)用Command對(duì)象的ExecuteReader()方法創(chuàng)建DataReader對(duì)象(sqlDataReader dataReader=command.ExecuteReader())?使用DataReader的Reader()方法逐行讀取數(shù)據(jù)(放回bool類(lèi)型)?讀取當(dāng)前行的某列的數(shù)據(jù)(cboGrade.Items.Add(dataReader[“列名”]))?關(guān)閉DataReader對(duì)象,Close()方法
向數(shù)據(jù)庫(kù)中添加數(shù)據(jù):
創(chuàng)建Connection對(duì)象?定義要執(zhí)行的SQL語(yǔ)句?創(chuàng)建Command對(duì)象?執(zhí)行ExecuteNonQuery()方法?根據(jù)返回的結(jié)果進(jìn)行后續(xù)的處理
雙擊顯示出ID:
MessageBox.show(dataGridView1.SelectedRows[0].cells[“ColID”].value.ToString());
刷新:
1,BindStudentByLoginID(txtBox.Text)2,listView.Items.RemoveAt(Listview1.SelectedIndices[0])//只能刪除選中的行(選中第幾個(gè))
第四篇:數(shù)據(jù)庫(kù)學(xué)習(xí)心得
數(shù)據(jù)庫(kù)學(xué)習(xí)心得
軟件0704劉辰(07301096)馬曉雪(07301098)劉靖遠(yuǎn)(07301097)
經(jīng)過(guò)一個(gè)學(xué)期的數(shù)據(jù)庫(kù)課程的學(xué)習(xí),我們掌握了創(chuàng)建數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)的操作的基礎(chǔ)知識(shí)。王老師的教學(xué)耐心細(xì)致,課堂上我們有不理解的地方老師都反復(fù)講解,使我們的基礎(chǔ)知識(shí)掌握的比較牢固。數(shù)據(jù)庫(kù)這門(mén)課涉及到以前的知識(shí)不多,是一門(mén)從頭學(xué)起的課程,即使基礎(chǔ)不是很好,只要認(rèn)真聽(tīng)講、復(fù)習(xí)功課,還是一門(mén)比較容易掌握的課。
在課堂上,使用英文課件,老師會(huì)叫同學(xué)起來(lái)翻譯知識(shí)點(diǎn),這種方法有助于加強(qiáng)理解、深化記憶,是比較好的,希望以后能夠繼續(xù)下去。因?yàn)楫吘管浖?zhuān)業(yè)是離不開(kāi)英文的資料和環(huán)境的。這樣提早的鍛煉會(huì)讓我們受益匪淺的。
項(xiàng)目小組和實(shí)訓(xùn)的內(nèi)容又讓我們了解了如何將數(shù)據(jù)庫(kù)與網(wǎng)頁(yè)等其他界面結(jié)合的知識(shí),使得數(shù)據(jù)庫(kù)的知識(shí)更加有實(shí)際意義。課堂上講的知識(shí)比較理論化,如果不動(dòng)手就無(wú)法將知識(shí)轉(zhuǎn)化為技能,而制作項(xiàng)目能夠讓我們將學(xué)過(guò)的知識(shí)在實(shí)踐中運(yùn)用,找到知識(shí)漏洞,并且能學(xué)到更多關(guān)于實(shí)際操作的知識(shí)和技巧。并且培養(yǎng)了我們的自學(xué)能力。
對(duì)課堂改進(jìn)措施的一點(diǎn)建議:我覺(jué)得如果老師不要求 我們很少有人回去會(huì)按進(jìn)度去讀英文教材。但是我又覺(jué)得讀教材是很有幫助的,所以希望老師可以再這方面加強(qiáng)要求,督促我們。
第五篇:數(shù)據(jù)庫(kù)學(xué)習(xí)心得
數(shù)據(jù)庫(kù)學(xué)習(xí)心得
一直以來(lái),對(duì)于數(shù)據(jù)庫(kù)這門(mén)課的理解就是一門(mén)文科性質(zhì)的學(xué)科,處理的問(wèn)題就是一些跟數(shù)據(jù)有關(guān)的問(wèn)題吧。大三上學(xué)期,數(shù)據(jù)庫(kù)作為專(zhuān)業(yè)選修課學(xué)習(xí)了半個(gè)學(xué)習(xí),徹底改變了自己對(duì)于數(shù)據(jù)庫(kù)課程的認(rèn)識(shí)。作為非計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生,尤其自己覺(jué)得對(duì)計(jì)算機(jī)方面的課程一致都不太在行,學(xué)習(xí)起來(lái)并不好過(guò)。
和很多計(jì)算機(jī)的課一樣,數(shù)據(jù)庫(kù)的內(nèi)容在自己眼里顯得很零散、不成系統(tǒng),許許多多的零碎的知識(shí)點(diǎn)需要小心注意到,但是這個(gè)感覺(jué)隨著慢慢學(xué)習(xí)的深入初步改變,數(shù)據(jù)庫(kù)課程的概念和方法又一套完整的體系,理論性和邏輯性很強(qiáng),對(duì)于事物處理能力有很高的要求。在老師介紹中也漸漸認(rèn)識(shí)到,各行各業(yè)都離不開(kāi)數(shù)據(jù)庫(kù),無(wú)論規(guī)模的大小,數(shù)據(jù)庫(kù)對(duì)于一個(gè)企業(yè)或者部門(mén)來(lái)說(shuō)都是至關(guān)重要不可或缺的。數(shù)據(jù)庫(kù)就像一套密密麻麻的神經(jīng)網(wǎng)絡(luò),將整個(gè)系統(tǒng)置于規(guī)范有效的運(yùn)行模式之下。
數(shù)據(jù)庫(kù)也讓我第一次接觸到了SQL語(yǔ)言,開(kāi)頭的時(shí)候老師給了操作的步驟,但就算是這樣也難免犯錯(cuò),因?yàn)槭前凑战o定的步驟做的,沒(méi)有自己的思考方式,所以對(duì)于這門(mén)語(yǔ)言的精髓所在沒(méi)有理解到,做完了之后還是覺(jué)得SQL語(yǔ)言很抽象難懂,就像其他很多計(jì)算機(jī)語(yǔ)言一樣。幸好有老師耐心的講解,每次操作遇到困難,老師都會(huì)認(rèn)真的講解,如果一時(shí)不能解決,老師會(huì)在下一次講課或者其他方式告知我解決的辦法,這更是激發(fā)了我要學(xué)好數(shù)據(jù)庫(kù)這門(mén)課的決心。慢慢的有了一些信心,然后發(fā)現(xiàn),其實(shí)數(shù)據(jù)庫(kù)的題目沒(méi)有什么固定的解法,每個(gè)
問(wèn)題都有很多種解決方案。
在結(jié)束了課堂的學(xué)習(xí)之后,老師還為我們安排了上機(jī)。這時(shí),平常上課所積累的知識(shí)才真正有了用處,但同時(shí)也發(fā)現(xiàn)存在很多的問(wèn)題。譬如說(shuō)在建立一個(gè)關(guān)于教學(xué)質(zhì)量評(píng)價(jià)的簡(jiǎn)單數(shù)據(jù)庫(kù)系統(tǒng)時(shí),前期的步驟都沒(méi)有錯(cuò)誤,唯獨(dú)在設(shè)置學(xué)生成績(jī)表的時(shí)候無(wú)法正常設(shè)置主鍵,自己在做的過(guò)程中忽略掉了這一問(wèn)題,直接導(dǎo)致在最后建立模型時(shí)出現(xiàn)無(wú)法更改的錯(cuò)誤,無(wú)奈之下只能選擇重新開(kāi)始,還是發(fā)現(xiàn)主鍵的設(shè)置不正常,一時(shí)便無(wú)法進(jìn)行下去,一籌莫展之際,老師給我提供了幫助順利解決得了問(wèn)題。
由此可見(jiàn),學(xué)習(xí)任何知識(shí)都來(lái)不得半點(diǎn)的差錯(cuò),否則必將會(huì)導(dǎo)致巨大的失誤。意識(shí)到這之后也不禁后怕,好在這是學(xué)生時(shí)期的練習(xí),就算是錯(cuò)誤也沒(méi)有實(shí)質(zhì)性的影響,但要是在以后的工作中呢,也需就是給公司造成了巨大的損失。平時(shí)的一點(diǎn)一滴中務(wù)必養(yǎng)成認(rèn)真仔細(xì)的習(xí)慣。
數(shù)據(jù)庫(kù)技術(shù)產(chǎn)生于六十年代末,是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)的重點(diǎn),它的出現(xiàn)極大的促進(jìn)了計(jì)算機(jī)應(yīng)用向各行各業(yè)的滲透。而數(shù)據(jù)庫(kù)的建設(shè)規(guī)模、數(shù)據(jù)庫(kù)信息量的大小和使用額度已成為衡量一個(gè)國(guó)家信息化程度的重要標(biāo)志。在當(dāng)下信息化的時(shí)代,數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為我們必須掌握的技術(shù)之一。通過(guò)對(duì)這門(mén)課的學(xué)習(xí),使得我對(duì)這門(mén)課有了深入的了解,掌握了有關(guān)數(shù)據(jù)庫(kù)中的思維方法,并對(duì)數(shù)據(jù)庫(kù)有關(guān)的應(yīng)用有了一定的認(rèn)知,相信對(duì)數(shù)據(jù)庫(kù)技術(shù)的學(xué)習(xí)在今后的工作必定有很大的用處。