代码:
//更新商品
public void updateGood(){
// Boolean flag=new Goods().set("Name", "维C").set("Brief", "维C泡腾片").set("Id","1").update();
Goods good=new Goods().set("Name", "维C").set("Brief", "维C泡腾片");
good.set("Id", "1");
Boolean flag=good.update();
if(flag){
renderText("Update Success:"+new Goods().findById("1").getName());
}else{
renderText("Update Fail!");
}
}之后时报错:
You can't update model without Primary Key, id can not be null.

表是Goods表,主键为Id。
是不是一定要为 id 不能是Id ?
另外,还想请教下,
public void addGood() {
Goods good = new Goods();
// good.setName("维生素E");
// good.setBrief("维生素E胶囊");
// good.setSpec("瓶");
good.set("Name", "维生素E");
good.set("Brief", "维生素E胶囊");
good.set("Spec", "瓶");
boolean flag = good.save();
if (flag) {
renderText("Success!");
} else {
renderText("Fail!");
}
}这两种set(一个是键值对,一个是set属性),有什么区别呢?
我执行sava的时候,使用setName这种,会操作数据库,但是数据都为空,改成键值对这种的就可以?
求指教,谢谢。
activeRecordPlugin.addMapping(tableName, "ID", modelClass);
如上所示,中间的参数 "ID" 就是大写的 id,具体到你的项目,是一个大写一个小写,改成这样:
activeRecordPlugin.addMapping(tableName, "Id", modelClass);
这种事情早在两年前就不需要手动做了,jfinal 提供了生成器,映射也是自动生成的,会自动解决大小写问题,在首页下载 jfinal demo,里面有生成器的使用例子,直接拿去改下几个参数即可使用