Witam. Zacząłem ostatnio zabawe z hibernate wspierając sie kursami z YT. Napisałem krótką aplikacje, która miała wpisać do bazy oracle dane do kilku wierszy.
Niestety wyskakują błedy, a ja nie jestem do końca pewny czy kod jest właściwy oraz pliki konfiguracyjne są dobrze napisane. Przyznam że trochę jestem w tym zagubiony. Prosze o wyjaśnienie czemu nie działą i czy pliki są właściwe.
import java.util.List;
import org.hibernate.*;
import org.hibernate.annotations.Entity;
import org.hibernate.cfg.Configuration;
import org.hibernate.ejb.EntityManagerFactoryImpl;
import org.hibernate.exception.Configurable;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Podaj ID: ");
long osoba_id = Pomocnik.helperLong();
System.out.println("Podaj imie: ");
String imie = Pomocnik.helperString();
System.out.println("Podaj nazwisko: ");
String nazwisko = Pomocnik.helperString();
System.out.println("Podaj wiek: ");
int wiek = Pomocnik.helperInt();
System.out.println("Podaj pesel: ");
int pesel = Pomocnik.helperInt();
Osoba osoba = new Osoba(osoba_id, imie, nazwisko, wiek, pesel);
SessionFactory sessionfactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session session = sessionfactory.openSession();
session.beginTransaction();
session.save(osoba);
session.getTransaction().commit();
}
}
```java
package paczka;
import javax.persistence.Id;
import org.hibernate.annotations.Entity;
@Entity
public class Osoba {
@Id
public static long osoba_id;
public static String imie;
public static String nazwisko;
public static int wiek;
public static int pesel;
public Osoba(long osoba_id, String imie, String nazwisko, int wiek, int pesel) {
this.osoba_id = osoba_id;
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
this.pesel = pesel;
}
public static long getOsoba_id() {
return osoba_id;
}
public static void setOsoba_id(long osoba_id) {
Osoba.osoba_id = osoba_id;
}
public static String getImie() {
return imie;
}
public static void setImie(String imie) {
Osoba.imie = imie;
}
public static String getNazwisko() {
return nazwisko;
}
public static void setNazwisko(String nazwisko) {
Osoba.nazwisko = nazwisko;
}
public static int getWiek() {
return wiek;
}
public static void setWiek(int wiek) {
Osoba.wiek = wiek;
}
public static int getPesel() {
return pesel;
}
public static void setPesel(int pesel) {
Osoba.pesel = pesel;
}
}
```java
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="connection.username">hr</property>
<property name="connection.password">hr</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>
<mapping resource="paczka.Osoba"/>
</session-factory>
</hibernate-configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="paczka">
<class name="Osoba" table="Osoby">
<id name="Osoba_id" column="Osoba_ID">
<generator class="increment"/>
</id>
<property name="imie" column="Imie" type="String"/>
<property name="nazwisko" column="Nazwisko" type="String"/>
<property name="wiek" column="Wiek" type="int"/>
<property name="pesel" column="Pesel" type="int"/>
</class>
</hibernate-mapping>