JFinal getModel方法(从页面表单中获取Model对象)+数据库存储问题
一、getmodel方法
1.在JConfig配置类中的数据库映射(存储到数据库时需要此配置)
java" id="highlighter_794711">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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类
1
2
3
4
5
6
7
|
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.前端表单
1
|
< input type = "text" name = "gOneQuestion.A" class = "required" maxlength = "50" style = "width: 250px" />
|
前端中的name=“Modelname.atrrname”意思:比如此例中的model为GOneQuestion,表单中的属性为A,所以name就为:gOneQuestion.A
注意:只有首字母变成小写,其他不变
4.getmodel获取
1
|
GOneQuestion question =getModel(GOneQuestion. class );
|
二、数据库存储问题
jfianl说明文档中:
User 中定义的 public static final User dao 对象是全局共享的,只能用于数据库查询, 不能用于数据承载对象。数据承载需要使用 new User().set(…)来实现。
意思是:比如本例中model定义的questiondao只能用来查询,不能用来插入数据。
插入数据时:(使用错会出现主键重复问题)
1
2
3
|
new GOneQuestion()
.set( "book" , question.getStr( "book" ))
.save();
|
删除增加数据时:GOneQuestion.questiondao.方法名