Torna indietro   Hardware Upgrade Forum > Software > Programmazione

KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
KTC lancia il nuovo monitor gaming H27E6, un modello da 27 pollici che promette prestazioni estreme grazie al pannello Fast IPS con risoluzione 2K QHD (2560x1440). Il monitor si posiziona come una scelta cruciale per gli appassionati di eSport e i professionisti creativi, combinando una frequenza di aggiornamento di 300Hz e un tempo di risposta di 1ms con un'eccezionale fedeltà cromatica
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-09-2007, 19:05   #1
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
[JAVA] apostrofo

in un 'applicazione client/server , dal lato client piglio un campo cognome di tipo stringa da memorizzare in un database in mysql.
Un primo problema riguardava il controllo del testo immesso, che poteva contenere solo lettere, spazi ed eventualmente l'apostrofo. Questo problema è stato risolto vedendo la stringa come un array di char ed applicando a ciauscun character i metodi isLetter(), isWhiteSpace() e controllando che sia ==\'
Ora, un nuovo problema riguarda l'insert della stringa nel database quando questa contenga l'apostrofo: in tal caso, l'apostrofo del cognome viene confuso con l'apostrofo della sintassi sql, generando eccezione in java.

Come posso risolvere il problema in modo che la visualizzazione sia corretta sia in java che in sql?

Grazie. Antonio
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2007, 19:58   #2
orpheus
Member
 
Iscritto dal: Apr 2004
Messaggi: 252
Codice:
nomeStringa = nomeStringa.replaceAll("'","\\'");
se non si legge bene è un replaceAll(" ' ", " \\'");

questo ti mette gli escape character di sql per l'apice e sei aposto
orpheus è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2007, 22:55   #3
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
In teoria se usi un PreparedStatement il driver si occupa poi automaticamente degli escape. Dico in teoria perchè non ricordo più dove l'ho letto nè ricordo miei tentativi recenti in merito.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2007, 09:40   #4
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
Quote:
Originariamente inviato da orpheus Guarda i messaggi
Codice:
nomeStringa = nomeStringa.replaceAll("'","\\'");
se non si legge bene è un replaceAll(" ' ", " \\'");

questo ti mette gli escape character di sql per l'apice e sei aposto
in realtà, facendo così,mi restituisce questa stringa (ottenuta con banale println) e quindi quest'eccezione:
Codice:
INSERT INTO cliente VALUES ('hhhhjjjjkkkkllll', 'D'Anna', 'Luciano', '089816212');

java.sql.SQLException: [MySQL][ODBC 3.51 Driver][mysqld-5.0.19-nt]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 'Anna', 'Luciano', '089816212')' at line 1
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2007, 13:10   #5
orpheus
Member
 
Iscritto dal: Apr 2004
Messaggi: 252
Mmmm è successo anche a me pochi giorni fa, osprattutto quando recuperavo il testo da campo di testo tipo text e textarea

per scrupolo prova così :

Codice:
 nomeStringa = nomeStringa.replaceAll("\'","\\'");
orpheus è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2007, 13:56   #6
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Insisto col PreparedStatement. Se fai una cosa tipo:

Codice:
PreparedStatement stat = connection.prepareStatement(
    "INSERT INTO cliente VALUES (?, ?, ?, ?)");
stat.setString(1, "hhhhjjjjkkkkllll");
stat.setString(2, "D'Anna");
stat.setString(3, "Luciano");
stat.setString(4, "089816212");
stat.executeUpdate();
il driver non si occupa automaticamente e senza problemi della questione virgolette?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
3I/ATLAS astronave aliena? Gli scienziat...
L'intelligenza artificiale inquiner&agra...
Intel porto di mare: il leader della str...
GeForce RTX 50 SUPER cancellate o rimand...
Windows 11 si prepara a vibrare: Microso...
La “Burnout Season” colpisce l’Italia: i...
QNAP annuncia il JBOD TL-R6020Sep-RP: ol...
Siemens e NVIDIA uniscono le forze: arri...
Ricarica veloce e durata batteria: miti ...
Le "navi volanti" di Candela a...
Bambini su misura? Il caso della startup...
Iliad porta le SIM Express in edicola: r...
Offerte Amazon sui TV Mini LED Hisense 2...
Il silenzio digitale che fa male: come i...
Il responsabile del programma Cybertruck...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v