Połączenie bazy danych MySQL w projekcie w Eclipse

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ę ;)

2
  • Zamiast Eclipse polecam IntelliJ IDEA
  • Zamiast MySQL polecam PostgreSQL
  • I przede wszystkim Zamiast ręcznego ściągana bibliotek polecam Maven
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:


	<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.

<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.

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:

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1