亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bookloaddaoimpl.java

?? 本系統實現了從五個網站上搜索的圖書進行整合后
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
		        secondNum =  (Long)firstList.get(0); 
		    	//System.out.println("secondNum:"+secondNum);
			    final ArrayList<String> temList = new ArrayList<String>();
			    /*對每個關鍵字進行分詞處理*/
			    for(int m = 0;m<keywordArr.size();m++){				    	
			        /*如果長度大于2,就進行分詞處理*/
			        if(keywordArr.get(m).length()>2){			        	
				        try {        
				           TokenStream ts = this.writerAnalyzer.tokenStream("", new StringReader(keywordArr.get(m)));
				           Token token ;
				           while ((token = ts.next()) != null) {
				        	    temList.add(token.toString().substring(1, token.toString().indexOf(",")).trim());
					            //System.out.println(token.toString().substring(1, token.toString().indexOf(",")));
				           }
				        }catch (Exception e) {
				           logger.error(e + "==========" + "庖丁解牛分詞出錯" + "==========");
				               // e.printStackTrace();
				                //System.out.println("poading error");	
				        }
			       }
			   }
			    if(temList.size()>0){
			    	
			    	 /*處理查詢hql語句*/
			    	String temp3 = "";								 
				    for(int i = 0;i<keywordArr.size();i++){
				        	
				        temp3 += " book.bookName not like :bookname"+i+ " and"; 
                    }
				    final String tempStr = temp3.substring(0, temp3.length()-3);
				    
			        String tem3 = "from Book as book where (";			        
			        for(int i = 0;i<temList.size();i++){
			        	   tem3 += " book.bookName like :namebook"+i+ " or"; 	
			        }
			        					    
			        final String strHql3 = tem3.substring(0, tem3.length()-2) + ")and ("+tempStr+")";
			        /*處理分頁*/
				    final int thirdResult = (int) ((currPage-1)*10 - secondNum);
			        final int thirdEndResult = 10 - result1.size() - result2.size();
			        
		            result3 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
		                public  List doInHibernate(Session session){
		                   Query query = session.createQuery( strHql3);
		                   for(int j = 0;j<temList.size();j++)
		                   query.setString("namebook"+j, "%"+temList.get(j)+"%");
		                   for(int m = 0;m<keywordArr.size();m++)
			                   query.setString("bookname"+m, "%"+keywordArr.get(m)+"%");
		                   query.setFirstResult(thirdResult);
		                   query.setMaxResults(thirdEndResult);
		                   return  query.list();
		               }
		           } );	
//		           System.out.println("result3:"+result3.size());
//		           for(int i = 0;i<result3.size();i++){
//		            	System.out.println("result3>>"+result3.get(i).getBookName());  
//		           }
			   }
	       }
		}else{
			
            /*查詢出完全匹配的記錄*/
            final String strHql1 = "from Book as book where book.bookName = :bookname";
            /*處理分頁*/
            final int firstResult = (currPage-1)*10;
            final String keyword = keywordArr.get(0);	 
            //System.out.println("keyword" + keyword);
            result1 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
                public  List doInHibernate(Session session){
                   Query query = session.createQuery( strHql1);
                   query.setString("bookname", keyword);
                   //Query query = session.createCriteria(strHql, "%"+keyword+"%");
                   query.setFirstResult(firstResult);
                   query.setMaxResults(10);
                   return  query.list();
               }
           } );
//	            for(int i = 0;i<result1.size();i++){
//	            	System.out.println("result1>>"+result1.get(i).getBookName());  
//	            }
			       /*查詢向前匹配的記錄*/ 		        	
		        if(result1.size()<10){
		        	   
		          /*完全匹配的記錄總數*/
			      long firstNum = 0;
			      String firstHql = "select count(*) from Book as book where book.bookName = ?";
			      List firstList = this.getHibernateTemplate().find(firstHql, bookName);
			      if(null != firstList)
			      firstNum =  (Long)firstList.get(0);
			      //System.out.println("first>>bookNum>>" + firstNum);
			      /*處理分頁*/
		          final int secondResult = (int) ((currPage-1)*10 - firstNum);
		          final int secondEndResult = 10 - result1.size();
		          /*向前匹配的hql*/
		          final String strHql2 = "from Book as book where book.bookName like :bookname and book.bookName != :namebook"; 
			      result2 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
			            public  List doInHibernate(Session session){
			                Query query = session.createQuery( strHql2);
			                query.setString("bookname", keyword+"%");
			                query.setString("namebook", keyword);
			                query.setFirstResult(secondResult);
			                query.setMaxResults(secondEndResult);
			                return  query.list();
			            }
			       });	    
//			       for(int i = 0;i<result2.size();i++){
//			           System.out.println("result2>>"+result2.get(i).getBookName());  
//			       }       
		         }

		        	/*查詢出向后匹配的記錄*/
		         if((result1.size()+result2.size())<10){
		        	   /*完全匹配和向前匹配的記錄總數*/
			    	   long secondNum = 0;
			           String secondHql = "select count(*) from Book as book where book.bookName like ?";
			           List secondList = this.getHibernateTemplate().find(secondHql, bookName+"%");
			           if(null != secondList)
			           secondNum =  (Long)secondList.get(0);
			           //System.out.println("second>>bookNum>>" + secondNum);
			           /*處理分頁*/
		        	   final int thirdResult = (int) ((currPage-1)*10 - secondNum);
		        	   final int thirdEndResult = 10 - result1.size() - result2.size();
		        	   /*查詢hql*/
		        	   //final String strHql3 = "from Book as book where book.bookName like :bookname and book.bookName != :namebook and book.bookName not like :namelikebook";
		        	   final String strHql3 = "from Book as book where book.bookName like :bookname and book.bookName not like :namelikebook";
			            result3 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
			                public  List doInHibernate(Session session){
			                   Query query = session.createQuery( strHql3);
			                   query.setString("bookname", "%" + keyword + "%");
			                   //query.setString("namebook", keyword);
			                   query.setString("namelikebook", keyword + "%");
			                   query.setFirstResult(thirdResult);
			                   query.setMaxResults(thirdEndResult);
			                   return  query.list();
			               }
			           } );	    
//			            for(int i = 0;i<result3.size();i++){
//			            	System.out.println("result3>>"+result3.get(i).getBookName());  
//			            } 
		           }
                   /*如果完全匹配,向前匹配,向后匹配的記錄數不夠當前顯示,則進行分詞后的匹配*/
		           if((result1.size()+result2.size()+result3.size())<10){
		        	   
				        final ArrayList<String> temList = new ArrayList<String>();
				        /*完全匹配,向前匹配和向后匹配的記錄總數*/
			    		long thirdNum = 0;
			        	String thirdHql = "select count(*) from Book as book where book.bookName like ?";        	
			        	List thirdList = this.getHibernateTemplate().find(thirdHql, "%"+bookName+"%");
			        	if(null != thirdList)
			            thirdNum =  (Long)thirdList.get(0);
			        	//System.out.println("third>>bookNum>>" + thirdNum);
				        /*如果長度大于2,就進行分詞處理*/
				        if(bookName.length()>2){			        	
					        try {        
					           TokenStream ts = this.writerAnalyzer.tokenStream("", new StringReader(bookName));
					           Token token ;
					           while ((token = ts.next()) != null) {
					        	    temList.add(token.toString().substring(1, token.toString().indexOf(",")).trim());
						            //System.out.println(token.toString().substring(1, token.toString().indexOf(",")));
					           }
					        }catch (Exception e) {
					            logger.error(e + "==========" + "庖丁解牛分詞出錯" + "==========");
					                //e.printStackTrace();
					                //System.out.println("poading error");	
					        }

					        /*處理查詢hql語句*/
					        String temStr = "from Book as book where (";			        
					        for(int i = 0;i<temList.size();i++){
					        	
					        	   temStr += " book.bookName like :bookname"+i+ " or"; 

					        }
					        final String strHql4 = temStr.substring(0, temStr.length()-2) + ") and book.bookName not like :namelikebook";
					        //System.out.println("strHql4>>" + strHql4);
					        /*處理分頁*/
					        final int forthResult = (int) ((currPage-1)*10 - thirdNum);
					        final int forthEndResult = 10 - result1.size() - result2.size() - result3.size();
				            result4 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
				                public  List doInHibernate(Session session){
				                   Query query = session.createQuery( strHql4);
				                   for(int j = 0;j<temList.size();j++)
				                       query.setString("bookname"+j, "%"+temList.get(j)+"%");
				                   query.setString("namelikebook", "%"+keyword+"%");
				                   //Query query = session.createCriteria(strHql, "%"+keyword+"%");
				                   query.setFirstResult(forthResult);
				                   query.setMaxResults(forthEndResult);
				                   return  query.list();
				               }
				           } );	
//				           for(int i = 0;i<result4.size();i++){
//				            	System.out.println("result4>>"+result4.get(i).getBookName());  
//				           }
				     }  
		           }
			
		}
    	
       if(result1.size()>0)result.addAll(result1);
       if(result2.size()>0)result.addAll(result2);
       if(result3.size()>0)result.addAll(result3);
       if(result4.size()>0)result.addAll(result4);
       return result;
	}
	/**
	* Function:  loadBookByAuthor
	* Description: 從數據庫中獲得按作者方式檢索的所有記錄
	* Calls:  no
	* Called By:  this.loadBook()
	* @param bookAuthor as String,currPage as int
	* @return ArrayList<Book>
	* @throws no
	*/
	private ArrayList<Book> loadBookByAuthor(String bookAuthor,int currPage){
		
		ArrayList<Book> result = new ArrayList<Book>();
        ArrayList<Book> result1 = new ArrayList<Book>();
        ArrayList<Book> result2 = new ArrayList<Book>();
        ArrayList<Book> result3 = new ArrayList<Book>();
		final List<String> keywordArr = new ArrayList<String>();
		/*按" "和"+"進行分詞處理,分成單獨的一條條記錄*/
		StringTokenizer st = new StringTokenizer(bookAuthor, " ");
		
		while (st.hasMoreElements()) {

			keywordArr.add(st.nextToken());
		}
		/*如果輸入的關鍵字不是一個時的查詢方式*/
		if(keywordArr.size()>1){

            /*多個關鍵字同時存在時*/
			String tem1 = "from Book as book where";	
			 
		     for(int i = 0;i<keywordArr.size();i++){
		        	
		        tem1 += " book.bookAuthor like :bookauthor"+i+ " and"; 
            }
		    final String strHql1 = tem1.substring(0, tem1.length()-3);
		    /*處理分頁*/
		    final int firstResult = (currPage-1)*10;
		    final int firstEndResult = 10;
	        result1 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
	              public  List doInHibernate(Session session){
	                 Query query = session.createQuery( strHql1);
	                 for(int j = 0;j<keywordArr.size();j++)
	                 query.setString("bookauthor"+j, "%"+keywordArr.get(j)+"%");
	                 query.setFirstResult(firstResult);
	                 query.setMaxResults(firstEndResult);
	                 return  query.list();
	             }
	        } );
//            System.out.println("result1:"+result1.size());
//	        for(int i = 0;i<result1.size();i++){
//	            System.out.println("result1>>"+result1.get(i).getBookAuthor());  
//	        }
	       
	        /*多個關鍵字同時匹配不夠十條時,進行不同時匹配查詢*/
	        if(result1.size()<10){
	        	
	        	 /*完全匹配的記錄總數*/
		    	long firstNum = 0;
				String firstHql = "select count(*) from Book as book where";	
					 
				for(int i = 0;i<keywordArr.size();i++){
				        	
					 firstHql += " book.bookAuthor like ? and"; 
                }
				firstHql =firstHql.substring(0, firstHql.length()-3);
				String []temKey = new String[keywordArr.size()];
				for(int j = 0;j<keywordArr.size();j++)temKey[j] = "%" + keywordArr.get(j) + "%";
		        List firstList = this.getHibernateTemplate().find(firstHql, temKey);
		        if(null != firstList)
		        firstNum =  (Long)firstList.get(0);
		        //System.out.println("firstNum:"+firstNum);
				String tem2 = "from Book as tushu where (";	
				 
			    for(int i = 0;i<keywordArr.size();i++){
			        	
			        tem2 += " tushu.bookAuthor like :authorbook"+i+ " or"; 
                }
			    final String strHq2 = tem2.substring(0, tem2.length()-2) + ")and not exists ("+strHql1+"and tushu.id=book.id)";
			    /*處理分頁*/
			    final int secondResult = (int) ((currPage-1)*10 - firstNum);
			    final int secondEndResult = 10-result1.size();
		        result2 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
		              public  List doInHibernate(Session session){
		                 Query query = session.createQuery( strHq2);
		                 for(int j = 0;j<keywordArr.size();j++)
		                     query.setString("authorbook"+j, "%"+keywordArr.get(j)+"%");
		                 for(int k = 0;k<keywordArr.size();k++)
			                 query.setString("bookauthor"+k, "%"+keywordArr.get(k)+"%");
		                 query.setFirstResult(secondResult);
		                 query.setMaxResults(secondEndResult);
		                 return  query.list();
		             }
		       });
//	            System.out.println("result2:"+result2.size());
//		        for(int i = 0;i<result2.size();i++){
//		            System.out.println("result2>"+result2.get(i).getBookAuthor());  
//		        } 				        
	       }  
		}else{
			 /*查詢出完全匹配的記錄*/
            final String strHql1 = "from Book as book where book.bookAuthor = :bookauthor";
            /*處理分頁*/
            final int firstResult = (currPage-1)*10;
            final String keyword = keywordArr.get(0);	 
            result1 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
                public  List doInHibernate(Session session){
                   Query query = session.createQuery( strHql1);
                   query.setString("bookauthor", keyword);
                   //Query query = session.createCriteria(strHql, "%"+keyword+"%");
                   query.setFirstResult(firstResult);
                   query.setMaxResults(10);
                   return  query.list();
               }
           } );
//	            for(int i = 0;i<result1.size();i++){
//	            	System.out.println("result1>>"+result1.get(i).getBookAuthor());  
//	            }
			       /*查詢向前匹配的記錄*/ 		        	
		        if(result1.size()<10){
		        	   
		          /*完全匹配的記錄總數*/
			      long firstNum = 0;
			      String firstHql = "select count(*) from Book as book where book.bookAuthor = ?";
			      List firstList = this.getHibernateTemplate().find(firstHql, bookAuthor);
			      if(null != firstList)
			      firstNum =  (Long)firstList.get(0);
			      /*處理分頁*/
		          final int secondResult = (int) ((currPage-1)*10 - firstNum);
		          final int secondEndResult = 10 - result1.size();
		          /*向前匹配的hql*/
		          final String strHql2 = "from Book as book where book.bookAuthor like :bookauthor and book.bookAuthor != :authorbook"; 
			      result2 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩另类国产亚洲欧美一级| 亚洲永久免费av| 欧美精选在线播放| 91蝌蚪porny| 97久久久精品综合88久久| 久久91精品久久久久久秒播| 亚洲午夜久久久久久久久久久| 中文字幕亚洲电影| 国产精品电影院| 亚洲狼人国产精品| 一级日本不卡的影视| 在线成人av网站| 在线91免费看| xf在线a精品一区二区视频网站| 日韩一区二区三区免费观看| 欧美日韩免费电影| 日韩一级二级三级精品视频| 欧美一级一区二区| 日韩欧美国产一区在线观看| 日本一二三不卡| 久久中文字幕电影| 成人免费视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 91成人看片片| 欧美一级在线免费| 亚洲日本护士毛茸茸| 亚洲美女区一区| 久久99精品久久久久婷婷| 国产精品小仙女| 欧美猛男男办公室激情| 国产福利精品一区二区| 狠狠色丁香婷婷综合久久片| 99vv1com这只有精品| 国产午夜精品一区二区三区四区| 一区二区三区免费观看| av一二三不卡影片| 中文字幕av免费专区久久| 久久99精品国产91久久来源| 欧美一区二区三区四区高清| 国产精品午夜久久| 99精品久久只有精品| 国产精品视频免费| 成人免费视频视频| 精品毛片乱码1区2区3区| 日本免费在线视频不卡一不卡二| 欧美日韩一区视频| 日本女人一区二区三区| 制服丝袜日韩国产| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美精品18+| 国产乱码一区二区三区| 国产精品免费观看视频| 91丨九色porny丨蝌蚪| 亚洲女性喷水在线观看一区| 欧美视频你懂的| 日本亚洲天堂网| 亚洲国产高清不卡| 精品视频在线视频| 青青草一区二区三区| 91国产精品成人| 香蕉影视欧美成人| 精品成人在线观看| 成人av网址在线观看| 一区二区三区日韩精品视频| 欧美精品色一区二区三区| 精品一区二区三区免费视频| 亚洲欧美怡红院| 日韩午夜激情av| 欧美亚洲国产一卡| 国产一区二区三区黄视频 | 国产高清亚洲一区| 日韩午夜电影av| 色综合视频在线观看| 捆绑紧缚一区二区三区视频| 欧美韩日一区二区三区| 91精品国产美女浴室洗澡无遮挡| 成人午夜av在线| 激情欧美一区二区| 九九精品视频在线看| 久久精品国产澳门| 青青国产91久久久久久| 亚洲国产精品一区二区久久恐怖片| 中文字幕制服丝袜成人av| 国产夜色精品一区二区av| 久久久影视传媒| 国产精品欧美久久久久一区二区| 精品国产麻豆免费人成网站| 欧美疯狂性受xxxxx喷水图片| 在线观看免费成人| 国产精品一区二区三区网站| 欧美va天堂va视频va在线| 欧美高清在线一区| 国产日韩欧美麻豆| 日本精品视频一区二区三区| 久久97超碰国产精品超碰| 欧美哺乳videos| 在线视频观看一区| 日日嗨av一区二区三区四区| 亚洲蜜桃精久久久久久久| 中文字幕欧美激情| 亚洲视频免费看| 免费成人在线网站| 国产精品一品二品| 色综合天天综合网国产成人综合天 | 欧洲精品一区二区| 欧美日本一区二区三区| 久久久99精品免费观看| 亚洲一二三四在线| 高清不卡在线观看| 欧美日本一道本| 亚洲国产精品精华液ab| 蜜臀av性久久久久蜜臀aⅴ| 成人精品视频网站| 国产日韩欧美不卡在线| 亚洲与欧洲av电影| 成人黄页在线观看| 欧美日韩精品电影| 中文字幕佐山爱一区二区免费| 国产一区二区视频在线播放| 欧美日韩国产三级| 日韩和欧美一区二区| 日本韩国欧美国产| 国产精品情趣视频| 国产精品一级黄| 久久精品亚洲国产奇米99| 天天综合网 天天综合色| 成人性视频网站| 精品粉嫩超白一线天av| 日韩vs国产vs欧美| 欧美日韩视频一区二区| 亚洲午夜在线视频| caoporen国产精品视频| 中文字幕精品一区二区三区精品| 毛片av一区二区三区| 精品久久久久久久久久久久久久久久久| 午夜精品久久久久| 久久麻豆一区二区| av激情综合网| 中国av一区二区三区| av电影在线观看不卡| 亚洲一区二区三区中文字幕| 欧美一区二区福利视频| 捆绑紧缚一区二区三区视频| 欧美在线视频你懂得| 麻豆精品一区二区av白丝在线| 日韩你懂的电影在线观看| 国产成都精品91一区二区三| 椎名由奈av一区二区三区| 欧美综合一区二区三区| 亚洲在线免费播放| 亚洲精品一区二区三区四区高清| 国产精品亚洲一区二区三区在线| 樱桃视频在线观看一区| 91精品国产综合久久久久久久久久| 日韩高清一级片| 国产精品欧美一区喷水| 91精品国产品国语在线不卡| 成人激情动漫在线观看| 韩国视频一区二区| 亚洲色图在线看| 欧美一区二区在线免费播放| 波多野结衣在线aⅴ中文字幕不卡| 日日夜夜免费精品| 亚洲欧美日韩国产一区二区三区| 精品国产人成亚洲区| 欧美专区亚洲专区| 一本色道亚洲精品aⅴ| 99久久精品费精品国产一区二区| 久久精品国产免费看久久精品| 亚洲国产成人tv| 亚洲三级理论片| 亚洲欧洲在线观看av| 欧美xxxxx牲另类人与| 91精品国产综合久久精品性色 | 欧美日韩1234| 欧美日韩欧美一区二区| 欧美色偷偷大香| 欧美日韩一级大片网址| 欧美三级电影网站| 欧美精三区欧美精三区| 欧美艳星brazzers| 99国产精品久久久久久久久久| 精品亚洲成a人在线观看 | 亚洲成人777| 亚洲国产sm捆绑调教视频| 亚洲精品一区二区三区在线观看| 日韩欧美在线不卡| 欧美一级欧美一级在线播放| 99re这里都是精品| 色综合久久综合| 欧美一区二区三区人| 亚洲国产精品激情在线观看| 中文av一区二区| 亚洲精品国产无天堂网2021 | 99久久久国产精品| jvid福利写真一区二区三区| 欧美亚洲国产一卡| 91久久精品一区二区| 欧美成人精品高清在线播放| 日韩一区在线播放|