W moim programie dane będę umieszczała w ArrayList.
Zamierzam zrobić funkcję w programie, która wszystkie dane z tej listy, albo całą listę (nie wiem jeszcze jakie są możliwości) wyśle na zewnętrzny serwer, aby inne urządzenia z tą samą aplikacja mogły je pobrać.
Teraz pytanie, jakie mam możliwości ? Na początku miałam zamiar interesować się SQLite, ale w niektórych miejscach przeczytałam, że służy tylko do lokalnego przechowywania.
Czy można taką listę wrzucić do bazy ? Czy od razu trzeba zapisywać do bazy, a nie do listy, no i jak już wspomniałam, chciałabym poznać możliwości.
Jeżeli ktoś ma wiedzę, proszę o pomoc.
Nie wiem co chcesz dokładnie zrobić, ale proponuję żebyś zrobiła serwisik, który wystawi Ci tą listę RESTem, czyli po HTTP.
Baza danych wszystko jedno jaka. Spring Boot, ORM, JPA i JDBC zapewniają Ci, że możesz sobie bazkę zmienić w każdym momencie nie przejmując się czy wybierzesz postgresa czy nawet bazę plikową. Takie rzeczy łatwo zapewniają i integrują tylko najlepsze technologie na świecie - czyli Java i framework wysokiej klasy czyli Spring Boot.
- Wchodzisz sobie tutaj https://start.spring.io/
- Do "Dependencies" dodajesz H2(prosta bazka plikowa) , JPA i Rest Repositories.
- Generujesz tj. pobierasz projekt i go rozpakowujesz
- Zaciągasz to jako projekt mavenowy do Intellij IDEA
- W pliku application.properties dodajesz linijkę
spring.jackson.serialization.indent_output=true
,która to zapewni Ci ładny wygląd tej listy na wyjściu. - Tworzysz sobie nową klasę na wzór tej:
package com.example;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RestController
public class MyListController {
private List<MyClazz> list = Arrays.asList(
new MyClazz("ABC",12),
new MyClazz("DEF",33),
new MyClazz("GHI",55)
);
@RequestMapping("/mylist")
public List<MyClazz> myList() {
return list;
}
}
Oczywiście rozumiem, że masz listę jakiś obiektów więc zmień sobie MyClazz na twoją klasę i listę obiektów którą przechowujesz.
- Uruchamiasz aplikacje w Intellij IDEA i wchodzisz w przeglądarce na
http://localhost:8080/mylist
- Dostajesz piękny output w JSONie twojej listy
- poleceniem
mvn clean package
w katalogu twojego projektu możesz spaczkować aplikacje do pojedynczego jara i uruchomić ją standalone
polecniemjava -jar twoja-appka-jar-1.0.jar
12b. Tym sposobem wystawiłaś na świat swoją ArrayListe i teraz inne aplikacje mogą sobie to łatwo do siebie zaciągnąć, bo jest to super format czyli JSON - Jak wykonasz te wszystkie kroki i Ci to zadziała to przejdziemy do zapisywania do bazy.
To tyle
To chyba kilka poziomów wyżej od tego co chcę zrobić, bo mało rozumiem.
Powiedzmy, że mam kilka elementów i chcę je przenieść do MySQL gdzie za pomocą phpMyAdmin zrobiłam sobie baze danych z 2 kolumnami: ID i Przykłady. Aktualnie na XAMPie, ale później będę chciała żeby to nie było na lokalnym serwerze,
Teraz chcę przenieść tam takie coś:
public static void main(String[] args)
{
ArrayList<String>przyklad = new ArrayList<String>();
przyklad.add("pierwszy przyklad");
przyklad.add("drugi przyklad");
przyklad.add("trzeci przyklad");
przyklad.add("czwarty przyklad");
przyklad.add("piąty przyklad");
}
Jeżeli chcesz po prostu wrzucić kilka elementów do bazy danych i móc je wyciągnąć to najprostsza droga wiedzie przez JDBC. Tutaj masz tutorial jak połączyć się bazą danych z poziomu kodu w Javie i móc sobie wykonywać na tej bazie zapytania:
https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html
Możesz też użyć jakiegoś ORMa, np. Hibernate ale w przypadku który opisujesz to byłoby strzelanie z armaty do wróbla.
Pozdrawiam.