我知道在查询中使用参数会阻止sql注入(从用户输入获取值时)。但是,如果我想构建一个使用预定义值的查询,例如
public static Bitmap loadView(View v) {
Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getWidth(), v.getHeight());
v.draw(c);
return b;
}
我可以不用这个吗?
void saveFile(Bitmap bitmap) {
String extr = Environment.getExternalStorageDirectory().toString() + File.separator + "Folder";
String fileName = new SimpleDateFormat("yyyyMMddhhmm'_bitmap.jpg'", Locale.US).format(new Date());
File myPath = new File(extr, fileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(myPath);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "Screen", "screen");
} catch (Exception e) {
e.printStackTrace();
}
}
在这种情况下是否有必要使用参数?
更新
我也可以这样做吗?MySqlCommand Command = Connection.CreateCommand();
Command.CommandText = "SELECT employee_address FROM employees WHERE employee_name = @employee_name";
Command.Parameters.AddWithValue("employee_name", "John");
答案 0 :(得分:0)
我建议始终使用参数。使用字符串很简单,但猜猜你有一个布尔值,十进制或日期。它有助于不考虑格式化。
使用参数,如果使用@ 0,@ 1,@ 2,则sql语句可以更短。您甚至可以使用param-array编写一个函数,该函数根据@ 0,@ 1,@ 2的顺序替换。这节省了大量代码。 (例如ExecuteSql(sql as string,paramarray myParameters as object)