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

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

?? bookloaddaoimpl.java

?? 本系統實現了從五個網站上搜索的圖書進行整合后
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
			            public  List doInHibernate(Session session){
			                Query query = session.createQuery( strHql2);
			                query.setString("bookauthor", keyword+"%");
			                query.setString("authorbook", 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).getBookAuthor());  
//			       }       
		         }

		        	/*查詢出向后匹配的記錄*/
		           if((result1.size()+result2.size())<10){
		        	   /*完全匹配和向前匹配的記錄總數*/
			    	   long secondNum = 0;
			           String secondHql = "select count(*) from Book as book where book.bookAuthor like ?";
			           List secondList = this.getHibernateTemplate().find(secondHql, bookAuthor+"%");
			           if(null != secondList)
			           secondNum =  (Long)secondList.get(0);
			           /*處理分頁*/
		        	   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.bookAuthor like :bookauthor and book.bookAuthor not like :authorlikebook";
			            result3 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
			                public  List doInHibernate(Session session){
			                   Query query = session.createQuery( strHql3);
			                   query.setString("bookauthor", "%"+keyword+"%");
			                   //query.setString("namebook", keyword);
			                   query.setString("authorlikebook", 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).getBookAuthor());  
//			            } 
		           }
		}
	    if(result1.size()>0)result.addAll(result1);
	    if(result2.size()>0)result.addAll(result2);
	    if(result3.size()>0)result.addAll(result3);
	    return result;
	}
	/**
	* Function:  loadBookByPublisher
	* Description: 從數據庫中獲得按出版社方式檢索的所有記錄
	* Calls:  no
	* Called By:  this.loadBook()
	* @param publisher as String,currPage as int
	* @return ArrayList<Book>
	* @throws no
	*/
	private ArrayList<Book> loadBookByPublisher(String publisher,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(publisher, " ");
		
		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.bookPublisher like :bookpublisher"+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("bookpublisher"+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).getBookPublisher());  
//	        }
	       
	        /*多個關鍵字同時匹配不夠十條時,進行不同時匹配查詢*/
	        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.bookPublisher 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.bookPublisher like :publisherbook"+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("publisherbook"+j, "%"+keywordArr.get(j)+"%");
		                 for(int k = 0;k<keywordArr.size();k++)
			                 query.setString("bookpublisher"+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).getBookPublisher());  
//		        } 				        
	       }  
		}else{
			 /*查詢出完全匹配的記錄*/
            final String strHql1 = "from Book as book where book.bookPublisher = :bookpublisher";
            /*處理分頁*/
            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("bookpublisher", 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).getBookPublisher());  
//	            }
			       /*查詢向前匹配的記錄*/ 		        	
		        if(result1.size()<10){
		        	   
		          /*完全匹配的記錄總數*/
			      long firstNum = 0;
			      String firstHql = "select count(*) from Book as book where book.bookPublisher = ?";
			      List firstList = this.getHibernateTemplate().find(firstHql, publisher);
			      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.bookPublisher like :bookpublisher and book.bookPublisher != :publisherbook"; 
			      result2 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
			            public  List doInHibernate(Session session){
			                Query query = session.createQuery( strHql2);
			                query.setString("bookpublisher", keyword+"%");
			                query.setString("publisherbook", 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).getBookPublisher());  
//			       }       
		         }

		        	/*查詢出向后匹配的記錄*/
		           if((result1.size()+result2.size())<10){
		        	   /*完全匹配和向前匹配的記錄總數*/
			    	   long secondNum = 0;
			           String secondHql = "select count(*) from Book as book where book.bookPublisher like ?";
			           List secondList = this.getHibernateTemplate().find(secondHql, publisher+"%");
			           if(null != secondList)
			           secondNum =  (Long)secondList.get(0);
			           /*處理分頁*/
		        	   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.bookPublisher like :bookpublisher and book.bookPublisher not like :publisherlikebook";
			            result3 = (ArrayList<Book>) this .getHibernateTemplate().executeFind( new  HibernateCallback()  {
			                public  List doInHibernate(Session session){
			                   Query query = session.createQuery( strHql3);
			                   query.setString("bookpublisher", "%"+keyword+"%");
			                   //query.setString("namebook", keyword);
			                   query.setString("publisherlikebook", 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).getBookPublisher());  
//			            } 
		           }
		}
	    if(result1.size()>0)result.addAll(result1);
	    if(result2.size()>0)result.addAll(result2);
	    if(result3.size()>0)result.addAll(result3);
	    return result;
	}
	/**
	* Function:  loadBookNumByName
	* Description: 從數據庫中獲得按圖書名稱匹配的記錄總數
	* Calls:  no
	* Called By:  this.loadBookNum()
	* @param bookName as String
	* @return long
	* @throws no
	*/
	private long loadBookNumByName(String bookName){
		
		long num = 0;
		long firstNum = 0;
		long secondNum = 0;
		List<String> keywordArr = new ArrayList<String>();
		/*按" "進行分詞處理,分成單獨的一條條記錄*/
		StringTokenizer st = new StringTokenizer(bookName, " ");
		
		while (st.hasMoreElements()) {

			keywordArr.add(st.nextToken());
		}
		if(keywordArr.size()==1){
			/*完全匹配,向前匹配,向后匹配的記錄總數*/
	    	String temHql = "select count(*) from Book as book where book.bookName like ?";
	    	List firstList = this.getHibernateTemplate().find(temHql, "%"+bookName+"%");
	    	if(firstList.size()>0)
	    	firstNum =  (Long)firstList.get(0);
	    	/*中文分詞之后的記錄總數*/
	    	if(bookName.length()>2){
			    ArrayList<String> temList = new ArrayList<String>();
			    	/*進行分詞,并把分詞之后的每個詞放到一個鏈表中*/				        	
			        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");	
			        }
		        /*如果分出的詞個數大于零,則對每個詞進行模糊匹配*/
				if(temList.size()>0){
			        /*處理查詢hql語句*/
			        String temStr = "select count(*) from Book as book where (";			        
			        for(int i = 0;i<temList.size();i++){
			        	
			        	   temStr += " book.bookName like ? or"; 
			
			        }
			        String strHql = temStr.substring(0, temStr.length()-2) + ") and book.bookName not like ?";
			        /*查詢參數*/
			        String args [] = new String[temList.size()+1];
			        int i = 0;
			        for( ;i<temList.size();i++) args[i] = "%"+temList.get(i)+"%";
			        args[i] = "%"+bookName+"%";
			        List secondList = this.getHibernateTemplate().find(strHql, args);
			        if(secondList.size()>0)
			        	secondNum = (Long)secondList.get(0);		        
				}
	    	}
	    	num = firstNum + secondNum;
	    	//System.out.println("firstNum:"+firstNum+"secondNum:"+secondNum);
		}else{
			/*多個關鍵字同時存在和不同時存在時的記錄數*/
			String firstHql = "select count(*) from Book as book where";	
				 
			for(int i = 0;i<keywordArr.size();i++){
			        	
				firstHql += " book.bookName like ? or"; 
            }
			firstHql =firstHql.substring(0, firstHql.length()-2);
			/*查詢參數*/
			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); 
	        /*對每個關鍵字進行分詞處理*/
	        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++){
			        	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产一区二区| 成人开心网精品视频| 懂色av一区二区夜夜嗨| 欧美日韩在线播放一区| 久久精品夜夜夜夜久久| 日韩av在线发布| 一本大道久久a久久综合| 欧美精彩视频一区二区三区| 久久国产免费看| 在线成人av影院| 亚洲精品免费在线观看| 成人免费的视频| 久久久久久久久久久黄色| 日本系列欧美系列| 欧美日韩国产免费一区二区 | 成人精品国产一区二区4080| 日韩视频在线你懂得| 亚洲一区二区五区| 成人午夜激情片| 国产欧美1区2区3区| 精品一二线国产| 欧美不卡一二三| 麻豆成人久久精品二区三区红 | 粉嫩欧美一区二区三区高清影视| 日韩视频一区二区在线观看| 日本不卡的三区四区五区| 欧美片网站yy| 五月激情丁香一区二区三区| 欧洲av在线精品| 亚洲精品亚洲人成人网| 北条麻妃国产九九精品视频| 中文字幕第一区| 91在线视频免费91| 国产精品久久久久久久第一福利| 国产精品一区2区| 久久精品视频一区| 成人一级片在线观看| 中文一区二区完整视频在线观看| 国产成人精品亚洲777人妖| 久久久久久免费网| 裸体健美xxxx欧美裸体表演| 26uuuu精品一区二区| 国产老肥熟一区二区三区| 国产日产精品一区| 97se狠狠狠综合亚洲狠狠| 亚洲黄色小视频| 91精品国产综合久久精品图片| 日本在线观看不卡视频| 久久这里只有精品视频网| 成人avav影音| 亚洲一级电影视频| 日韩精品中文字幕一区二区三区| 韩国av一区二区三区| 中文字幕欧美一| 欧美男同性恋视频网站| 黑人精品欧美一区二区蜜桃| 中文字幕第一区二区| 在线免费一区三区| 精品在线一区二区三区| 国产精品成人网| 欧美人与禽zozo性伦| 国内精品视频一区二区三区八戒| 国产精品水嫩水嫩| 在线视频一区二区三区| 奇米色777欧美一区二区| 中文字幕精品三区| 555夜色666亚洲国产免| av一区二区三区| 亚洲精品高清视频在线观看| 日本精品一区二区三区四区的功能| 91高清在线观看| 久久久久国产精品麻豆ai换脸 | 亚洲手机成人高清视频| 亚洲美女偷拍久久| 欧美国产禁国产网站cc| 国产伦精品一区二区三区免费| 国产精品二三区| 99国产精品99久久久久久| 日本视频免费一区| 国产精品国产精品国产专区不蜜| 欧美人与z0zoxxxx视频| 成人爱爱电影网址| 免费观看成人av| 有码一区二区三区| 欧美激情一区二区三区蜜桃视频| 欧美精品xxxxbbbb| 91老司机福利 在线| 国产在线麻豆精品观看| 亚洲成人动漫一区| 亚洲人成在线播放网站岛国| 久久久不卡网国产精品一区| 欧美精品 日韩| 欧美三级视频在线观看| www.激情成人| 成人中文字幕在线| 久草中文综合在线| 日本一不卡视频| 丝袜亚洲精品中文字幕一区| 亚洲激情自拍偷拍| 中文字幕一区二区不卡| 久久女同性恋中文字幕| 日韩欧美国产三级| 欧美一级理论片| 9191精品国产综合久久久久久| 99精品欧美一区二区三区小说| 国产精品一线二线三线精华| 精品一区二区免费| 精品一区精品二区高清| 免费观看久久久4p| 美国三级日本三级久久99 | 亚洲va欧美va人人爽| 亚洲一区二区在线免费观看视频| 亚洲欧美日韩久久| 亚洲手机成人高清视频| 亚洲人一二三区| 亚洲欧美欧美一区二区三区| 亚洲人xxxx| 亚洲成人精品影院| 日韩国产精品久久久| 青草国产精品久久久久久| 免费人成在线不卡| 激情综合色播五月| 国产一区二区在线电影| 国产精品一区二区三区网站| 国产在线麻豆精品观看| 国产一区二区三区四| 福利91精品一区二区三区| 成人免费视频播放| 一本色道久久综合亚洲91 | 成人av网站大全| 成人高清伦理免费影院在线观看| 成人免费视频国产在线观看| 日本高清不卡视频| 在线不卡a资源高清| 日韩欧美一区二区视频| 国产亚洲欧美中文| 亚洲色图视频网站| 亚洲国产日韩a在线播放性色| 视频一区二区中文字幕| 国产乱码精品一区二区三| 国产精品一区三区| 日本伦理一区二区| 欧美另类久久久品| 久久一夜天堂av一区二区三区| 国产女主播在线一区二区| 亚洲综合视频在线观看| 久久国产麻豆精品| 99这里都是精品| 欧美体内she精高潮| 精品久久久影院| 亚洲精品国产第一综合99久久| 蜜臀av一区二区| 暴力调教一区二区三区| 欧美人动与zoxxxx乱| 国产亚洲一区二区三区在线观看| 亚洲欧美色图小说| 三级久久三级久久| 成人黄色网址在线观看| 欧美撒尿777hd撒尿| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕中文在线不卡住| 石原莉奈在线亚洲三区| 国产99久久久精品| 9191久久久久久久久久久| 中文一区二区完整视频在线观看| 婷婷国产v国产偷v亚洲高清| zzijzzij亚洲日本少妇熟睡| 欧美精选一区二区| 成人免费在线视频观看| 国内一区二区视频| 欧美日韩在线不卡| 国产精品国产三级国产普通话99 | 91精品国产色综合久久| 成人欧美一区二区三区小说 | 国产精品久久综合| 久久99国产精品免费网站| 欧美色精品在线视频| 亚洲欧洲无码一区二区三区| 久久草av在线| 欧美精选午夜久久久乱码6080| 亚洲品质自拍视频网站| 懂色av噜噜一区二区三区av| 欧美电影免费观看高清完整版在线 | 久久九九久久九九| 日韩精品一级中文字幕精品视频免费观看| 成人免费毛片嘿嘿连载视频| 欧美精品一区二区蜜臀亚洲| 日韩av网站在线观看| 欧美日韩精品一区二区三区蜜桃| 国产精品久久久久久久裸模| 国内精品嫩模私拍在线| 欧美日韩第一区日日骚| 亚洲午夜私人影院| 日本精品免费观看高清观看| 1000部国产精品成人观看| av不卡在线播放| 亚洲免费观看高清完整版在线观看熊| 成人午夜视频在线观看| 国产欧美日韩久久| 国产成人丝袜美腿|