Play的model层,数据库配置

Play框架的Model层特性包括实体类属性公开,无需get/set方法。启用数据库需配置文件,创建Model类需继承Model。示例展示了Student和SchoolInfo实体类。Play的JPA操作简单,如增删改查。当修改实体类,访问相关控制器时,数据库会自动同步新增字段,但不会自动删除字段。
摘要由CSDN通过智能技术生成

Model层是mvc中的重要概念 ,与controller和view对应。下面讲讲model。

play的model有一下特点。

1.实体类中的属性需要public修饰

2.实体类不需要写get/set方法

3.通常我们会在实体类中写数据库操作方法,也就是传统框架中的dao层


这与正常的持久化框架有点不同。有人会说这是错的,不应该把属性设置成public,应该是private,这样才符合Java的封装特性。事实上,play在后台是为这些属性做过处理的,已经处理成了private,并且为我们生成了set/get方法。

play说做的一切就是为了简化框架,提高开发效率,让开发者更注重项目的逻辑代码,而不是框架的结构。


启用数据库,需要对配置文件进行配置

db.url=jdbc:mysql://localhost:3306/eseed_wechat_dcd?useUnicode=true&characterEncoding=UTF-8
db.driver=com.mysql.jdbc.Driver
db.user=root
db.pass=mysql

在model中创建新的model类,需要继承Model及基础类


import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import play.db.jpa.Model;
@Entity
public class Student extends Model{
public String name;
public String studentId;
public int age;
public String adress;
public String grade;
@ManyToOne public SchoolInfo schoolInfo;
}


import javax.persistence.Entity;
import play.db.jpa.Model;
@Entity
public class SchoolInfo extends Model{
public String schoolName; //大学名字
public String schoolNum;  //大学编号
public String address;   //地址
public String description; //描述
public String president;//校长
}

不需要创建Id的字段,在生成数据表的时候会自动添加


Play的JPA

//增user.save();

//删user.delete();

//改user.email = “new@emailaddress.com”;user.save();

//查User user = User.findById(1L);

//查列表List<User> users = User.find(“admin = ?”, “true”).fetch();

和hibernate常见的操作一样,具体方法自己熟悉

RestaurantInfo restaurantInfo= RestaurantInfo.findById(id);

validation.valid(restaurantInfo.edit("restaurantInfo", params.all()));//对表单提交的数据进行整合,直接打包编辑给实例

RestaurantInfo restaurantInfo= new RestaurantInfo();
validation.valid(restaurantInfo.edit("restaurantInfo", params.all()));//新建实例


关于对保存,对象之间存在关联,需要对各自的实例进行保存

student.school.save();

student.save();



问:在连接数据库时,何时新建与实体类对应的数据库表?

----重新运行项目,在访问于实体类相关的controller的方法时会在数据库表中新建一个表(如果表不存在)。如项目运行过程中,删掉了表,继续与访问类的相关方法会报错,数据库表不能连接的错。需要重新启动项目,重新生成表。

 

问:在实体类中增加或者减少字段的时候,是否能直接同步到数据表中?

答:在类中增加新的字段,在访问类相关方法的时候会对数据表进行修改,增加对应的字段。不需要额外的配置。但是删除属性的时候,数据表中的字段不会自动删除,需要手动去删除字段,但是不会报错,因为相当于给相应的删除的字段添加NULL的值



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值