Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

java.sql.BatchUpdateException: You have an error in your SQL syntax

[es] :: MySQL :: java.sql.BatchUpdateException: You have an error in your SQL syntax

[ Pregleda: 1428 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kath
Novi Sad

Član broj: 249584
Poruke: 3
*.adsl-a-6.sezampro.rs.



Profil

icon java.sql.BatchUpdateException: You have an error in your SQL syntax01.02.2010. u 20:31 - pre 185 meseci
Zdravo :)
na ovom forumu sam pronasla dosta resenja za probleme koji su me mucili
tokom samog studiranja, i veoma sam zahvalna na pruzenoj pomoci :)
Ono sto me ovog puta muci, nazalost, nisam uspela naci...

Radim za diplomski web aplikaciju za vodjenje poslovnih knjiga.
Koristila sam fakultetsku bazu podataka kojoj sam pristupala preko MySQL-a
koji sam instalirala kuci, verzija 5.0

Problem je nastao kad je na faksu pukla baza, i ja morala da se prebacim na
"kucnu" varijantu.
Instalirala sam prvo Xampp, kasnije i AppServ, ali je greska opstajala.

Kako sam koristila hibernate mappiranje, mislila sam da je greska mozda tu,
ali na hibernate forumu su mi rekli da je moj kod kod njih - prosao...

dakle...

treba mi da se izvrsi:

Code:
package model;

import javax.transaction.Transaction;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateTest {

   /**
    * @param args
    */
   public static void main(String[] args) {
      Configuration cfg = new Configuration();
      cfg.configure("model/hibernate.cfg.xml");
      SessionFactory sf = cfg.buildSessionFactory();
      Session s = sf.openSession();
      
      org.hibernate.Transaction tx = s.beginTransaction();
      Kb48302Sifarnikpisaca pisac = new Kb48302Sifarnikpisaca();
      pisac.setPisciId("13");
      pisac.setPisciIme("Niki");
      pisac.setPisciPrezime("French");
      
      s.save(pisac);
      tx.commit();

   }

}


greska koju dobijam je:

Code:

Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
   at model.HibernateTest.main(HibernateTest.java:27)
Caused by: java.sql.BatchUpdateException: 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 '-02.kb48302_sifarnikpisaca (PISCI_IME, PISCI_PREZIME, PISCI_ID) values ('Niki', ' at line 1
   at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1666)
   at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1082)
   at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
   ... 8 more



moja klasa Kb48302Sifarnikpisaca ima tri atributa samo,
Code:
private String pisciId;
   private String pisciIme;
   private String pisciPrezime;


sa get i set metodama...

Molim za pomoc... vec danima me ovo muci :(
imam eventualno jos da prilozim hibernet mapiranje, ali rekli su da hibernet prolazi... bice da sam zabrljala negde izmedju...

Hvala unapred.
Kath
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15953
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2378 Profil

icon Re: java.sql.BatchUpdateException: You have an error in your SQL syntax03.02.2010. u 12:10 - pre 185 meseci
kako definises konekciju prema mysql-u? koristis propertie u pool-u ili koristis url? koja verzija appservera? koja verzija mysql connectora? da li ti je mysql connector jar stavljen sa aplikacijom ili u lib od appservera?

- skini poslednji connector/j
- stavi ga u lib na appserveru, ne uz aplikaciju
- budi sigurna da si u konektoru prema mysql-u (dal kroz url ili kroz propertie) UGASILA server side prepared statements !! (ovo je najbitnije, useServerPreparedStmts=false )

to bi trebalo da pomogne glupom hibernate-u da konstruise upit kako treba ... posto je tu trenutno zabod - hibernate ti konstruise upit koji nije validan (sintaksno)

sto se greske (sintaksne) tice .. ono sto je zbunjujuce je

Citat:
-02.kb48302_sifarnikpisaca


ovo znaci da ti se baza zove "-02" !! .. to moz da prodje samo ako je ime baze pod backtikovima ... dakle `-02` a i tada nisam siguran da li zelis da ti se baza zove -02 .. promeni ime baze u nesto "normalno" tipa BAZA02 (bez minusa, razmaka, kljucnih reci) i to ce mozda 1/1 da ti resi problem bez menjenja bilo cega drugog


 
Odgovor na temu

kath
Novi Sad

Član broj: 249584
Poruke: 3
*.static.kdsinter.net.



Profil

icon Re: java.sql.BatchUpdateException: You have an error in your SQL syntax03.02.2010. u 23:37 - pre 185 meseci
znaci - ne verujem.
5 dana zurenja u kod, i da, vidim to -02 i ne znam ni sta mi je ni odakle mi je...

i maltretiram koleginicu sad,
i shvatam...

nije mi ni palo na pamet da je -02 ime baze...
jer meni je baza diplomski483-02, pri cemu je on prvi deo zanemario...

skacem do plafona od srece :) to je to... zanemario je prvi deo imena baze.
Ne znam zastoje to uradio, ali bar znam gde je problem... i napokon mogu dalje :)

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15953
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2378 Profil

icon Re: java.sql.BatchUpdateException: You have an error in your SQL syntax04.02.2010. u 13:25 - pre 185 meseci
Citat:
kath
Ne znam zastoje to uradio, ali bar znam gde je problem... i napokon mogu dalje :)


iz nekog razloga hibernate ne stavi backtick oko imena tabele a - kao i mnogi drugi karakteri ne moze validno da bude deo imena baze/tabele/kolone. Jedini nacin da koristis - je da ime onda ogradis sa backtickovima tako da bude `nesto-nestodrugo` inace ne moze posto je - aritmeticka operacija i kako parser da zna da li je a-b jedan atribut koji se zove `a-b` ili je to aritmeticki izraz `a`-`b`.

 
Odgovor na temu

kath
Novi Sad

Član broj: 249584
Poruke: 3
*.static.kdsinter.net.



Profil

icon Re: java.sql.BatchUpdateException: You have an error in your SQL syntax05.02.2010. u 00:52 - pre 185 meseci
hvala i za ovu informaciju :)
vodicu racuna o tome, mada sam to vec uveliko trebala da usvojim...
 
Odgovor na temu

[es] :: MySQL :: java.sql.BatchUpdateException: You have an error in your SQL syntax

[ Pregleda: 1428 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.