2010-06-25 7 views
2

je veux écrire cette ligne dans un sqlight db b:syntaxe sql comment écrire en java

CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US') 

donc dans mon fichier java qui génèrent cette base de données que je fais:

stat.executeUpdate("create table "+"android_metadata"+"("+"locale"+ " TEXT DEAFULT"+");"); 
    PreparedStatement prep1 = conn.prepareStatement(
       "insert into "+"android_metadata"+" values (?);"); 
    prep1.setString(1, "en_US") ; 

mais la sortie est similer pas comment puis-je faire les paramètres régionaux sqlight être « locale » avec « » dans la déclaration et les paramètres régionaux sur le terrain serait juste TEXT

comme similer à ce début de blog: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

Thanx

Répondre

6

Pour échapper aux guillemets doubles utilisent une barre oblique inverse:

stat.executeUpdate("create table \"android_metadata\" (\"locale\" TEXT DEFAULT 'en_US');"); 

Je pense aussi Vous n'avez pas besoin de guillemets doubles autour de android_metadata car ce n'est pas un mot-clé SQL.

3

Vous devez échapper le symbole de citation (et corriger une faute de frappe - deafult)

stat.executeUpdate("create table \"android_metadata\" (\"locale\" TEXT DEFAULT 'en-US');"); 
+0

hommes thanx à b honnête, je tentais de dos slash mais avec/plutôt que en utilisant \ les bugs qui mange votre vie ... merci u :) –

2

Les équivalents String java sont:

// CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US') 
final static private String create = "CREATE TABLE \"android_metadata\" (\"locale\" TEXT DEFAULT 'en_US')"; 

// INSERT INTO "android_metadata" VALUES ('en_US') 
final static private String insert = "INSERT INTO \"android_metadata\" VALUES ('en_US')"; 

EDIT mis à jour le code suivant duffymos commenter :)

+0

Ces deux chaînes doivent être statiques et finales. – duffymo

+0

@duffymo, c'est juste un exemple java-like à quoi devrait ressembler la chaîne. Pas même un extrait. –

+0

Vous et moi le savons, mais pas le PO. Il les a intégrés dans la méthode d'exécution. Je pensais que ça valait le coup de le souligner. – duffymo