幾天有於這個的一個細節問題改了好幾個小時。。。。
一、getmodel方法
1.在JConfig配置類中的數據庫映射(存儲到數據庫時需要此配置)
public void configPlugin(Plugins me) {
C3p0Plugin cp = null;
try {
cp = new C3p0Plugin(
"jdbc:mysql://localhost:3306/huaxuetang?useUnicode=true&characterEncoding=utf-8",
"root", "1234");
System.out.println("成功");
} catch (Exception e) {
System.out.println("連接失敗");
}
me.add(cp);
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp);
arp.setShowSql(true);
me.add(arp);
arp.addMapping("bse_user", "id", User.class);
arp.addMapping("grade_one_choice","id",GOneQuestion.class);
}
中arp。addMapping()中有三個參數,第一個是數據庫表名,第二個主鍵,第三個是對應的Model類名稱
2.Model類
import com.jfinal.plugin.activerecord.Model;
public class GOneQuestion extends Model<GOneQuestion>{
private static final long serialVersionUID = 1L;
// 聲明一個全局操作的變量
public final static GOneQuestion questiondao = new GOneQuestion();
}
3.前端表單
<input type="text" name="gOneQuestion.A" class="required" maxlength="50" />
前端中的name=“Modelname.atrrname”意思:比如此例中的model為GOneQuestion,表單中的屬性為A,所以name就為:gOneQuestion.A
注意:只有首字母變成小寫,其他不變
4.getmodel獲取
GOneQuestion question =getModel(GOneQuestion.class);
二、數據庫存儲問題
jfianl說明文檔中:
User 中定義的 public static final User dao 對象是全局共享的,只能用於數據庫查詢, 不能用於數據承載對象。數據承載需要使用 new User().set(…)來實現。
意思是:比如本例中model定義的questiondao只能用來查詢,不能用來插入數據。
插入數據時:(使用錯會出現主鍵重復問題)
new GOneQuestion()
.set("book", question.getStr("book"))
.save();
刪除增加數據時:GOneQuestion.questiondao.方法名