首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQLite数据库中设置默认值

在SQLite数据库中设置默认值
EN

Stack Overflow用户
提问于 2019-06-09 23:29:15
回答 1查看 58关注 0票数 -4

如何在android studio中设置我的sqlite数据库的默认值

代码语言:javascript
复制
@Override
public void onCreate(SQLiteDatabase db) {
    String createTable = "CREATE TABLE "+TABLE+" (id INTEGER PRIMARY KEY AUTOINCREMENT, indo TEXT, tdr TEXT)";
    db.execSQL(createTable);
    db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (ikan,nyao)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE);
    onCreate(db);
}

我想在数据库中输入示例数据,然后当我尝试在

代码语言:javascript
复制
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (ikan,nyao)");

哪里出错了,嗯?是因为写作的规则吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 11:43:59

问题是这些值需要用单引号括起来,否则它们将被视为实体名称(本例中为列名)。

所以你可以使用:-

代码语言:javascript
复制
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES ('ikan','nyao')") //<<<<<<<<<< ikan and nyao enclosed in single quotes

但是,更正确的方法是使用绑定参数,在这种情况下,您可以使用:

代码语言:javascript
复制
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (?,?)",new String[]{"ikan","nyao"});

SQL

  • 绑定参数(用相应的值替换?'s )时,值会被括起来,以防止注入(尽管由于数据不是用户提供的,所以不可能发生SQL注入攻击)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56515890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档