我們都知道SQLite是不允許插入空行的子库,但是很多時(shí)候我們對(duì)于插入的數(shù)據(jù)是不知道的团甲,其中可能就會(huì)有沒有值镐确,然后就造成空行瓜晤,那么我們?nèi)绾闻袛嗄兀亢芏嗳苏f只要我們將得到的數(shù)據(jù)重新整理一遍就好了腹纳,一旦為空就給他賦值痢掠,我也是這么想的,結(jié)果悲劇了嘲恍,下面直接出代碼:
public URLTableData setUrlTableData(URLTableData urlTableData){
if(urlTableData.getUrl().length()<=0){
urlTableData.setUrl("該鏈接不存在");
}
if(urlTableData.getWho().equals(null)){
urlTableData.setWho("佚名");
}
if(urlTableData.getDesc().equals(null)){
urlTableData.setDesc("不存在");
}
if(urlTableData.getCreatedAt().toString().length()<=0){
urlTableData.setCreatedAt(null);
}
return urlTableData;
}
public ContentValues CreatParms(URLTableData urlTableData) {
setUrlTableData(urlTableData);
ContentValues _ContentValues = new ContentValues();
_ContentValues.put("URLValue",urlTableData.getUrl());
_ContentValues.put("URLCreateAt",ChangeTimeFormat.changeToYearMonthDay(urlTableData.getCreatedAt()));
_ContentValues.put("URLWho",urlTableData.getWho());
_ContentValues.put("URLDesc",urlTableData.getDesc());
return _ContentValues;
}
public Boolean insertToURLTable(URLTableData urlTableData) {
ContentValues _ContentValues = CreatParms(urlTableData);
Long p_NewID = getMySqLiteDatabase().insert(getTable(), null, _ContentValues);
urlTableData.set_id(p_NewID.intValue());
return p_NewID > 0;
}
這里的三個(gè)函數(shù)我解釋一下大概什么意思足画,第一個(gè)是給得到的數(shù)據(jù)重新賦值,第二個(gè)是設(shè)置ContentValues佃牛,第三個(gè)是執(zhí)行插入淹辞。但是每次數(shù)據(jù)插入都不成功,然后我進(jìn)行調(diào)試俘侠,發(fā)現(xiàn)每次都是運(yùn)行到
if(urlTableData.getWho().equals(null)){
urlTableData.setWho("佚名");
}
這條語句就出現(xiàn)異常(我捕獲了異常)象缀,其中我的urlTableData.getWho()
得到的who
是空的,然后再調(diào)用equal()
方法就出現(xiàn)了異常爷速,那么我們應(yīng)該怎么判斷呢央星?既然知道了原因,那么其實(shí)就很簡單,只要將上面的第一個(gè)函數(shù)setUrlTableData(URLTableData urlTableData)
改成下面這樣:
public URLTableData setUrlTableData(URLTableData urlTableData){
if(urlTableData.getUrl()==null){
urlTableData.setUrl("該鏈接不存在");
}
if(urlTableData.getWho()==null){
urlTableData.setWho("佚名");
}
if(urlTableData.getDesc()==null){
urlTableData.setDesc("不存在");
}
if(urlTableData.getCreatedAt().toString()==null){
urlTableData.setCreatedAt(null);
}
return urlTableData;
}
這樣就好了嘛惫东,當(dāng)然如果是單個(gè)數(shù)據(jù)插入莉给,而不是整個(gè)對(duì)象插入,就可以通過設(shè)置insert(參數(shù))
方法來設(shè)置廉沮,這里就不贅述了颓遏。