Ciao a tutti sono agli inizi con hibernate e sono già bloccato, non capisco perchè mi dia come errore: "error in your SQL syntax"
Ho creato un DB di nome "libreria" e una tabella di nome "libri"
Ho configurato il file hibernate.cfg.xml e sembra che si connetta (se metto parametri da sbagliati da errori....)
Ho creato il file Libri.hbm.xmlCodice PHP:<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1/libreria</property>
<property name="connection.username">libreria</property>
<property name="connection.password"></property>
<property name="connection.pool_size">2</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">false</property>
<mapping resource="it/dominio/Libri.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Ho creato il Bean Libri.javaCodice PHP:<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping schema="hibernate" package="it.dominio">
<class name="it.dominio.Libri" table="libri" catalog="libreria" lazy="false">
<id name="id" type="java.lang.Integer">
<column name="ID"/>
<generator class="identity"/>
</id>
<property name="isbn" type="string">
<column name="ISBN" length="255" not-null="false"/>
</property>
<property name="titolo" type="string">
<column name="TITOLO" length="255" not-null="false"/>
</property>
<property name="autore" type="string">
<column name="AUTORE" length="255" not-null="false"/>
</property>
<property name="categoria" type="string">
<column name="CATEGORIA" length="255" not-null="false"/>
</property>
</class>
</hibernate-mapping>
e in fine un main di prova per vedere se funzionaCodice PHP:package it.dominio;
import java.io.*;
public class Libri implements Serializable{
private Integer id;
private String isbn;
private String titolo;
private String autore;
private String categoria;
public Libri(){}
public Libri(String isbn, String titolo, String autore, String categoria){
this.isbn = isbn;
this.titolo = titolo;
this.autore = autore;
this.categoria = categoria;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getTitolo() {
return titolo;
}
public void setTitolo(String titolo) {
this.titolo = titolo;
}
public String getAutore() {
return autore;
}
public void setAutore(String autore) {
this.autore = autore;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
}
Codice PHP:import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import it.dominio.Libri;
public class TestDB {
public static void main(String[] argv){
try{
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
Libri libro = new Libri();
libro.setAutore("Pippo");
libro.setCategoria("Categoria libro");
libro.setIsbn("123456");
libro.setTitolo("Titolo libro");
session.save(libro);
session.getTransaction().commit();
}
catch(Exception err){
//err.printStackTrace();
System.out.println("---------------------->> errore!!");
}
}
}
Quando tento di eseguire mi da sempre l'errore:
Codice PHP:GRAVE: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.libri (ISBN, TITOLO, AUTORE, CATEGORIA) values ('123456', 'Titolo libro', 'Pipp' at line 1
Qualcuno che usa Hibernate può darmi una mano ??? grazie....

Rispondi quotando