JFinal框架学习-----Db+Record

在JFinal中,除了Model可以对数据库进行操作之外,JFinal还提供了Db+Record模式来对数据库进行操作。

Record相当于一个通用的Model,不同的是Record只能够承载数据,需要借助DB类来进行数据库的操作。而Model类既可承载数据也可以对数据库进行操作。(Record类里只使用Map来存储数据库里每一列的字段,DB类封装了数据库的常用操作:save,update,delete,find/query。

下面,我们来看一下Db+Record的一些使用方法:

package com.controller;

import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.model.Blog;

import java.util.List;
import java.util.Map;

public class RecordController extends Controller{

    /**
     * 查询所有blog
     */
    public void index(){
        List<Record> bloglist= Db.find("select * from blog");
        setAttr("bloglist",bloglist);
        renderJsp("BlogList.jsp");
    }

    /**
     *根据id删除blog
     */
    public void deleteBlog(){
        Db.deleteById("blog",getParaToInt("id"));
        redirect("/record");
    }

    /**
     * 添加blog
     */
    public void saveBlog(){
        Record blogs=new Record().set("title",getPara("title")).set("content",getPara("content")).set("category",getPara("category"));
        Db.save("blog","id",blogs);
        redirect("/record");
    }
    
    public void edit(){
        Integer id=getParaToInt("id");
        if(id !=null && id>0){
            Record blog=Db.findById("blog",id);
            setAttr("blog",blog);
            render("blogUpdate.html");
        }
    }

    /**
     * 更新
     */
    public void updateBlog(){
        Record record=new Record();
        record.set("id",getPara("blog.id"));
        record.set("title",getPara("blog.title"));
        record.set("content",getPara("blog.content"));
        Db.update("blog",record);
        redirect("/record");
    }

    /**
     * 分页查询
     */
    public void paginate(){
        Integer pageNumber=getParaToInt("pageNumber");
        if(pageNumber==null){
            pageNumber=1;
        }
        Page<Record> page=Db.paginate(pageNumber,5,"select *","from blog");
        setAttr("blogPage",page);
        renderJsp("page.jsp");
    }
}

在updateBlog()方法中,我们可以看出,与使用Model模式相比,Model为我们提供了getModel()方法来获取request中的数据,而Db+Record模式并没有这样的方法,因此,当我们需要获得一个Record对象的时候,我们需要自己构造。

猜你喜欢

转载自my.oschina.net/u/3952492/blog/1987242