JFinal getModel方法(從頁面表單中獲取Model對象)+數據庫存儲問題


幾天有於這個的一個細節問題改了好幾個小時。。。。

一、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" style="width: 250px"/>

前端中的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.方法名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM