Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android execSQL:bindargs更好吗?_Android_Sqlite_Android Sqlite - Fatal编程技术网

Android execSQL:bindargs更好吗?

Android execSQL:bindargs更好吗?,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我想知道execSQL方法可以接受1个或2个参数。 如果可以使用对象直接在SQLite db上执行操作,为什么要使用第二种方法 例如: db.execSQL("INSERT INTO "+ TableName +" VALUES (null, ?)", new Object[] { type.getName() }) 这个比用这个好吗 db.execSQL("INSERT INTO "+ TableName +" VALUES (null,"+ type.getName()

我想知道execSQL方法可以接受1个或2个参数。
如果可以使用对象直接在SQLite db上执行操作,为什么要使用第二种方法

例如:

db.execSQL("INSERT INTO "+ TableName +" VALUES (null, ?)",
        new Object[] { type.getName() })
这个比用这个好吗

db.execSQL("INSERT INTO "+ TableName +" VALUES (null,"+  type.getName() +")")
第一个示例更安全吗?
执行时速度更快?
更容易阅读…

还是一样

方法1更好

例如,它可以避免SQL注入。
因为它为您处理数据类型

这意味着它在需要时通过添加字符串分隔符和转换撇号来转换字符串

即:

要正确工作,您应该编写方法2like

db.execSQL("INSERT INTO " + TableName + " VALUES (null, '" +  type.getName().replace("'", "''") + "')");
所以

第一个示例更安全吗?
是。
执行时更快?
不确定是否更快。
容易阅读
是的,一旦你习惯了(主要是基于观点)。

。。。还是相同?
No,对于上面讨论的内容。

方法1更好

例如,它可以避免SQL注入。
因为它为您处理数据类型

这意味着它在需要时通过添加字符串分隔符和转换撇号来转换字符串

即:

要正确工作,您应该编写方法2like

db.execSQL("INSERT INTO " + TableName + " VALUES (null, '" +  type.getName().replace("'", "''") + "')");
所以

第一个示例更安全吗?
是。
执行时更快?
不确定是否更快。
容易阅读
是的,一旦你习惯了(主要是基于观点)。
。。。还是相同?
否,用于上面讨论的内容