Android execSQL:bindargs更好吗?
我想知道execSQL方法可以接受1个或2个参数。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()
如果可以使用对象直接在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("'", "''") + "')");
所以
第一个示例更安全吗?
是。执行时更快?
不确定是否更快。容易阅读
是的,一旦你习惯了(主要是基于观点)。。。。还是相同?
否,用于上面讨论的内容