就從denglu(...)方法開始講了,這個(gè)方法在聲明的時(shí)候標(biāo)識(shí)了會(huì)throws Exception,表示這個(gè)方法中的某些代碼可能會(huì)拋出異常。
創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為越秀企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),越秀網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
UserDenglu resultUser = null; 構(gòu)造一個(gè)名叫 UserDenglu的類的對象 resultUser,值為null表示沒有實(shí)例化(只是聲明了一個(gè)模型,沒有在內(nèi)存中占用位置)。
String sql = ... 這名是定義一個(gè)字符串變量,它的值是一個(gè)sql語句;語句的意思是: 查詢t_denglu表中字段userName值(?為暫留空,后面填)并且password值為(?為暫留空,后面填);
PreparedStatement pstmt = con.prepareStatement(sql); 將sql語句傳給con對象(數(shù)據(jù)庫連接對象)的prepareStatement方法得到返回值為 pstmt對象;
pstmt.setString(1, user.getUserName()); 把sql語句中的第一個(gè)?參數(shù)替換成 user.getUserName()方法的返回值;
pstmt.setString(2, user.getPassword()); 意義與上句類同,替換第二個(gè)?參數(shù)。
ResultSet rs = pstmt.executeQuery(); 執(zhí)行數(shù)據(jù)庫查詢語句,將查詢結(jié)果放入rs對象中;
if(rs.next()) 如果rs結(jié)果集中還有下一條的話
resultUser = new UserDenglu(); 實(shí)例化resultUser對象;
resultUser.setUserName(rs.getString("username"));將數(shù)據(jù)庫結(jié)果集中查詢到的列名為username的列的值傳入 resultUser.setUserName()方法中;
resultUser.setPassword(rs.getString("password"));與上句類同,將password列的值傳入到resultUser的setPassword()方法中。
========================================================
這個(gè)做的是用戶登錄功能,該方法中接收一個(gè)包含用戶輸入的用戶名和密碼的UserDenglu對象,然后用它們來查詢數(shù)據(jù)庫中是否有對應(yīng)用戶名和密碼對的結(jié)果,如果有的話,就登錄成功,如果沒有,就登錄失敗。登錄失敗,該方法返回的是null,如果登錄成功,返回的是一個(gè)包含數(shù)據(jù)庫中查詢出來的用戶名和密碼的UserDenglu對象。調(diào)用這個(gè)方法時(shí),可以判斷它返回值是否為null來判斷是否登錄成功(用戶名和密碼正確)。
首先理解public boolean addBook(Book book )這句話的含義是創(chuàng)建一個(gè)大家都能使用的公共方法(public的作用),該方法返回一個(gè)布爾類型的值(boolean的作用),該方法的名字是addBooke(調(diào)用方法需要名字啊,沒名字怎么用它),這個(gè)方法需要的參數(shù)是一個(gè)Book類型的對象book(Book book的作用);
每一個(gè)方法都有一個(gè)方法簽名:方法簽名就是方法名和參數(shù)列表(在這里就是 addBook(Book book))通過方法簽名我們就能正確的找到并執(zhí)行該方法;
方法名,顧名思義就是方法的名字,一個(gè)類中可以有很多相同方法名的方法,就拿addBook來所,是添加書,添加書的渠道很多,可以通過書名添加,也可以通過id添加,只不過執(zhí)行的邏輯和需要的參數(shù)不同;所以一個(gè)類中可以有很多的同名方法,那么程序如何區(qū)分這些方法呢?那就是通過方法簽名的另一個(gè)元素——參數(shù)列表,在java中稱方法名相同,參數(shù)列表不同的情況為方法的重載;
這位大哥問的就是參數(shù)列表的問題,參數(shù)列表中需要的是參數(shù)的數(shù)據(jù)類型,和一個(gè)引用來臨時(shí)在方法中保存用戶給的數(shù)據(jù);這里Book就是數(shù)據(jù)類型,book就是一個(gè)臨時(shí)的引用在方法體內(nèi)可以代表用戶給的數(shù)據(jù)的;這里有需要有棧楨和堆的概念了,在沒有這些基礎(chǔ)知識(shí)的時(shí)候我們只要知道,book是一個(gè)引用,在方法體中我么可以使用book來操作一個(gè)不屬于我們的外部對象;
純手打望采納;
group是一個(gè)線程池,而你的變量booleanstarted是為了記錄當(dāng)前線程是否運(yùn)行成功,如果運(yùn)行成功,就會(huì)走下一步為booleanstarted賦值為true說明運(yùn)行成功了,如果運(yùn)行失敗booleanstarted還是false在finnaly中判斷started為false也就是線程運(yùn)行失敗,提醒線程池group,線程運(yùn)行失敗