我的代码是
ContentValues values; values = new ContentValues(); values.put(sqlHelper.EMPLOYEE_LPN,jsObj.getString("lpn")); db.update(sqlHelper.EMPLOYEE_TABLE,values,"EMPLOYEE_LPN ='" + jsObj.getString("lpn") + "'",null);
Log Cat中显示警告
08-31 15:19:45.297: WARN/Database(2868): Reached MAX size for compiled-sql statement cache for database /data/data/org.sipdroid.sipua/databases/test.db; i.e.,NO space for this sql statement in cache: SELECT EMPLOYEE_NAME FROM eyemployee WHERE EMPLOYEE_LPN ='1169162'. Please change your sql statements to use '?' for bindargs,instead of using actual values
如何解决请帮忙
解决方法
看看例子8-3和8-4
here.
例8-3.使用更新方法
/** * Update a job in the database. * @param job_id The job id of the existing job * @param employer_id The employer offering the job * @param title The job title * @param description The job description */ public void editJob(long job_id,long employer_id,String title,String description) { ContentValues map = new ContentValues(); map.put("employer_id",employer_id); map.put("title",title); map.put("description",description); String[] whereArgs = new String[]{Long.toString(job_id)}; try{ getWritableDatabase().update("jobs",map,"_id=?",whereArgs); } catch (sqlException e) { Log.e("Error writing new job",e.toString()); } }
以下是示例8-3中的代码的一些亮点:
例8-4显示了如何使用execsql方法.
例8-4.使用execsql方法
/** * Update a job in the database. * @param job_id The job id of the existing job * @param employer_id The employer offering the job * @param title The job title * @param description The job description */ public void editJob(long job_id,String description) { String sql = "UPDATE jobs " + "SET employer_id = ?,"+ " title = ?,"+ " description = ? "+ "WHERE _id = ? "; Object[] bindArgs = new Object[]{employer_id,title,description,job_id}; try{ getWritableDatabase().execsql(sql,bindArgs); } catch (sqlException e) { Log.e("Error writing new job",e.toString()); } }
--One query SELECT * FROM Customers WHERE Id = @1 (@1 = 3) SELECT * FROM Customers WHERE Id = @1 (@1 = 4) SELECT * FROM Customers WHERE Id = @1 (@1 = 5)
在缓存中找不到具有不同文本(包括文字)的查询,并且(无用地)添加了它.
--Three Queries. SELECT * FROM Customers WHERE Id = 3 SELECT * FROM Customers WHERE Id = 4 SELECT * FROM Customers WHERE Id = 5