簡體   English   中英

比較String與我的ArrayList

[英]Compare String with my ArrayList

我有這個ArrayList:

List<String> zainteresowanka = new ArrayList<String>();
zainteresowanka.add("Java");
zainteresowanka.add("Platforma .NET (C#)");
zainteresowanka.add("Android");
zainteresowanka.add("iOS");
zainteresowanka.add("Windows Phone");
zainteresowanka.add("Technologie WWW (HTML, CSS, JavaScript)");
zainteresowanka.add("Testowanie aplikacji");
zainteresowanka.add("Projektowanie aplikacji");
zainteresowanka.add("Analiza Biznesowa");
zainteresowanka.add("Inne");

這些就是某人可以選擇自己喜歡的東西的東西。 如果他選擇“ Inne” ,那么他必須輸入他喜歡此ArrayList不包含的其他內容。

它將這樣寫入數據庫:

  1. Platforma .NET(C#)2. iOS 3. Windows Phone

一串。

將其保存到字符串的方法如下所示:

 zainteresowaniaa = zainteresowaniaa + " " + licz + ". " + zainteresowanka.get(wyboor);  
 licz = licz + 1;

我需要做的是基於ArrayList zainteresowanka搜索列表,因此我可以選擇“ Java,iOS”,然后得到每個選擇這些列表的人。

我怎樣才能做到這一點?

據我了解

您有一個arraylist,其中包含用戶可以選擇的項目。您將選擇的項目保存到數據庫。 然后,您需要獲取選擇了某些項目(例如“ Windows Phone”)的用戶

首先,您需要為不同的用戶分配一個ID,以區分它們。

使用用戶標識將詳細信息存儲在數據庫中

例如

 ==============================
 userid | chosen items
 ==============================
  1      | windows  ios android  
  2      | android ios
  ===============================

然后,您需要在數據庫中(假設使用mysql或sql之類)在數據庫中搜索特定項(value1,value2)。 您可以使用“ LIKE”或“ IN”運算符

您可以使用SQL IN運算符搜索多個絕對值:

SELECT userid FROM tablename WHERE name IN('Value1','Value2',...);

如果要使用LIKE,則需要改用OR:

從表名中選擇用戶ID,其中名稱為“%Value1”或名稱為“%Value2”; 使用AND(您嘗試過)要求所有條件為真,而使用OR至少需要一個條件為真。

在這里,您將獲得用戶ID列表,因此將選擇特定項的用戶value1,value2

對於休眠

您可以使用本機sql查詢或創建查詢。 但是搜索功能最好由Hibernate搜索查詢DSL實現

簡單的方法是使用查詢

Query query = session.createQuery("SELECT u FROM UserData u WHERE u.userRole IN (:roles)");
query.setParameterList("roles", roles);

更多信息在下面的鏈接

http://w3facility.org/question/jpa-get-all-rows-that-matches-multiple-strings/

更好,更正確但更高級的方法可能是使用休眠搜索查詢DSL

您可以使用此功能在多個字段中搜索多個關鍵字

基本語法

Query luceneQuery = queryBuilder
    .keyword()
      .wildcard()
    .onField("foo")
    .matching("bar*")
    .createQuery();

更多信息

http://hibernate.org/search/documentation/getting-started/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM