PDA

View Full Version : [Java] Semplice rubrica collegata ad un Database


Giovanni Tavella
19-07-2013, 15:04
Come da titolo devo creare una semplice rubrica da collegare ad un database utilizzando le API persistence.
Come IDE utilizzo NetBeans.

Ho trovato questa ottima discussione sull'argomento questa ottima discussione sull'argomento (http://www.hwupgrade.it/forum/archive/index.php/t-1973146.html) ma ho ancora dei problemi.


Allora il Database l'ho creato utilizzando "MySQL manager Lite for mySQL" (1 sola tabella"People" con 2 campi, String nome[key]-String Number, giusto per fare pratica) .

Creo il collegamento da Netbeans nel seguento modo :
Servizi->Database->New Connection-> Seleziono Driver "MySql-Connector/J-driver" e seleziono il file_driver corrispondente
inserisco nome e password e clicco su Test_Connessione e mi dice che la connessione è riuscita.

Creo un nuovo Progetto ( Java Application ) , creo un nuovo packege "DB"- creo dentro "classe entita del database"
Seleziono la connessione del DB e l'unica tabella , poi seleziono :
"Genera annotazione delle query con nome per i campi persistenti"
"Genera JAXB annotions"
"Create Persistence Unit"
"Use column name in relationship" e clicco su fine.

è stato creato il package MeTa_inf della persistenza.


Ora voglio provare a inserire il primo record nel mio db,
creo una classe prova:

public class gian {
People p;
EntityManagerFactory factory ;
EntityManager database;

public gian(){
p=new People("Giacomo");
factory = Persistence.createEntityManagerFactory("JavaApplication14PU");
database = factory.createEntityManager(); }

public String insertRecord(){
try{
database.getTransaction().begin();
database.persist(p);
database.getTransaction().commit();
return "----- Ok ------";
}
catch(Exception e){ return(" !!!!!!!!!!! errore !!!!!!!!! "); }
} } //fine


nel main: gian g=new gian(); System.out.println(g.insertRecord());

mi da i seguenti errori:
[EL Info]: 2013-07-19 15:51:24.165--ServerSession(1581923)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461
[EL Severe]: 2013-07-19 15:51:24.22--ServerSession(1581923)--Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class [com.mysql.jdbc.Driver] not found.
Exception Description: Configuration error. Class [com.mysql.jdbc.Driver] not found.
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:517)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272)
at var.gian.<init>(gian.java:22)
at javaapplication14.JavaApplication14.main(JavaApplication14.java:17)
Caused by: Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class [com.mysql.jdbc.Driver] not found.
at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82)
at org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:488)
... 6 more
Java Result: 1

Dove sbaglio?
Qualcuno può aiutarmi? HELP

Eln
19-07-2013, 22:39
Non ho mai creato questo tipo di connessioni con netbeans (mi fa venire la pelle d'oca sinceramente).

Comunque cosi ad occhio credo sia necessario importare il jar di mysql (lite) nel tuo progetto Java.

Exception Description: Configuration error. Class [com.mysql.jdbc.Driver] not found.

Giovanni Tavella
20-07-2013, 09:15
Comunque cosi ad occhio credo sia necessario importare il jar di mysql (lite) nel tuo progetto Java.

Il database è stato creato con " MySQL manager Lite for mySQL" ,
come creo il jar del db?

Ho provato a fare cosi
extract Database (seleziono mio db) , salvo il database ottenuto nella cartella del mio progetto , ma non risolvo nulla....



Per la connessione se conosci altri metodi te ne sarei grato , posso rifare tutto da 0 , l'importante è che utilizzo le Api Persistence

Giovanni Tavella
20-07-2013, 16:19
nessuno può aiutarmi?

Quello che mi serve è capire come scrivere/leggere record su un database utilizzando le API persistence..


:help: :help: :help:

Eln
21-07-2013, 07:58
Il jar lo devi scaricare dal sito di mysql o comunque online. Lo devi poi importare nel classpath del tuo progetto o, se stai facendo un progetto web, nella cartella /lib.