Połączenie bazy danych MySQL w projekcie w Eclipse

Połączenie bazy danych MySQL w projekcie w Eclipse
MO
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 lat
  • Postów:7
0

Witam,
Mam problem z połączeniem bazy danych MySQL w Eclipse. Mam już zainstalowaną baze MySQL i pobrany Connector/J (mysql-connector-java.jar). Nie wiem co gdzie wstawić lub skonfigurować, co muszę zrobić? Proszę o odpowiedź co mam zrobić krok po kroku

Z góry dziękuję ;)

KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
2
  • Zamiast Eclipse polecam IntelliJ IDEA
  • Zamiast MySQL polecam PostgreSQL
  • I przede wszystkim Zamiast ręcznego ściągana bibliotek polecam Maven

Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
MO
A IntelliJ IDEA jest w obsłudze taki sam jak Eclipse czy ma jakieś różnice?
K5
Na start nauki, nie ma według mnie znaczenia czy Eclipse czy Intelij. To co najważniejsze z postu Kamila to MAVEN. Wygoogluj sobie z czym to się je. Jak raz stworzysz projekt mavenowy to potem już będziesz wiedział co i jak.
MO
Oki, dzięki wielkie 😀
B9
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 dni
  • Postów:65
2

Stwórz sobie projekt maven. Klikasz new->maven project. Zaznaczasz tam skip archetype project.

Następnie będziesz miał w plikach plik pom.xml.

Do tego pliku doklej taki kodzik:

Kopiuj

	<properties>
		<maven.compiler.version>12</maven.compiler.version>
		<maven.compiler.target>12</maven.compiler.target>
	</properties>

	<dependencies>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.16</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>5.4.6.Final</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>5.4.4.Final</version>
		</dependency>
		<dependency>
			<groupId>javax.transaction</groupId>
			<artifactId>jta</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
			<version>2.3.1</version>
		</dependency>
	</dependencies>

Następnie stwórz plik "persistence.xml" w folderze src/main/resource/META-INF. Jeśli go nie masz to stwórz. Wklej do niego to i uzupełnij.

Kopiuj
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
	version="2.1">
	<persistence-unit name="myPersistenceUnit"
		transaction-type="RESOURCE_LOCAL">
		<properties>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/**TUTAJ NAZWA TWOJEGO SCHEMATU BAZY DANYCH**?useSSL=false&serverTimezone=UTC" />
			<property name="javax.persistence.jdbc.user" value="**TUTAJ PODAJ LOGIN BAZY DANYCH**" />
			<property name="javax.persistence.jdbc.password" value="**TUTAJ PODAJ HASŁO**" />
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
			<property name="javax.persistence.schema-generation.database.action"
                  value="drop-and-create"/>
		</properties>
	</persistence-unit>
</persistence>

Value drop-and-create oznacza że przy każdym starcie programu będzie usuwana baza danych i tworzona.

Potem stwórz sobie klase, najprostszą java którą nazywa się DAO. Załóżmy że chciałbyś zapisywać, odczytywać ludzi z danej bazy, więc powinna w najprostszym wykonaniu wyglądać tak.

Kopiuj
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

public class PeopleDao {

    private EntityManagerFactory emFactory;
    private EntityManager entityManager;

    public PeopleDao() {
        emFactory = Persistence.createEntityManagerFactory("myPersistenceUnit"); // myPersistenceUnit jest to nazwa z pliku persistence.xml tam nazwaliśmy w ten sposób nasze dane do połaczenia
        entityManager = emFactory.createEntityManager();
    }

   
    public void save(People people) {
        EntityTransaction tx = entityManager.getTransaction();
        tx.begin();
        entityManager.persist(people);
        tx.commit();
    }

    public People get(Long id) {
        People people= entityManager.find(People.class, id);
        return people;
    }

    @Override
    public void cleanUp() {
        entityManager.close();
        emFactory.close();
    }
}

Ostatnia rzecz to stworzenie klasy People która przechowuje człowieka. A następnie klasa main cos w tym stylu:

Kopiuj
public class Main {
    public static void main(String[] args) {
        
        People people= new People("Jacek", "Wrona");
        PeopleDao peopleDao= new PeopleDao();
        peopleDao.save(people);
        System.out.println("People saved");
        peopleDao.cleanUp();
    }
}

Oczywiście nigdy w życiu tego nie wykorzystasz w pracy czy coś, ale jest to "najprostsza" implementacja. Do webowych aplikacji polecam pouczyć się Springa, Springa data, rest itd.

edytowany 1x, ostatnio: brus97
MO
Dzięki :D ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.