美文网首页后端
play实体类的编写以及Ebean的使用

play实体类的编写以及Ebean的使用

作者: avery1 | 来源:发表于2017-09-04 15:24 被阅读0次

    参考链接

    Ebean-功能介绍  Hibernate 实体类注解   Ebean

    配置好Ebean和创建好数据局以后就是创建实体类了。

    modal时play的核心部分,它包含了数据库声明,类型,set,get方法,Ebean的finder方法等。

    在app目录下创建models文件夹,在此文件夹内创建java类

    上两图是实体类的一个例子。下面也只是对部分注解的说明,后续会持续更新

    @Entity  声明实体类

    @Table  name属性指定数据库对应的表名

    @Id      定义标的主键(id)

    @Column 注解对应数据库中字段的名称,一般会直接根据属性名称去寻找数据库字段。不过如果存在驼峰命名 ,必须要声明,因为如果不注解,默认生成的sql语句是在两个单词之间添加_。

    @Transient  声明的属性是数据库中不存在的属性字段

    @ManyToOne 表示一个多对一的映射,可以实现联表查询

    @JoinColumn 联表查询的关联id

    @ManyToOne(fetch = FetchType.LAZY)

    @JoinColumn(name = "developerId")

    private Developer developer;

    这表示从当前表关联id为 developerId去查询另一个表

    在ManyToOne里一般不用声明关联那个表,他会自动根据返回的数据去查询,比如这里Developer,那么就会去关联Developer的类去查询。

    在实体类的最下面可以声明finder方法,这样就可以在java里使用Ebean的方法进行数据库的操作了。


    实体类的应用

    刚才我们的定义,那么我们就可以用finder方法调用各类操作

    查询

    EmailNotificationType.find.findList()

    findList是查询数据库的所有信息,没有条件

    条件查询可以用where

    EmailNotificationType.find.where().eq("id", id).findUnique()

    查询结果为单条用findUnique(),不等于用ne()

    多个eq条件可以继续eq

    EmailNotificationType.find.where().eq("id", id).eq("displayName",displayName).findUnique()

    排序直接用OrderBy

    EmailNotificationType.find.where().eq("id", id).orderBy("displayName").findUnique()

    模糊查询用Like

    EmailNotificationType.find.where().eq("id", id).like("displayName","%"+displayName+"%").findUnique()

    范围查询

    EmailNotificationType.find.where().in("id", idList).findUnique()

    分页

    首先这里理解sql语句的查询条数的实现

    select * form ‘user’ limit 10

    select * form ‘user’ limit 5,10

    select * form ‘user’ limit 10 offset 20

    理解这几条语句的意思

    limit后面只有一个数字代表从第一条数据开始取,取多少条数据.

    写两个数字的时候第一个数字是从第几条开始(从0开始计算的),第二个数字是取多少条数据,从第6(5+1)条数据开始取10条数据

    offset是从第几条数据开始

    第三条语句的意思是从第21(20+1)条数据开始取10条数据

    这里有2个属性来分别设置这两个属性

    setFirstRow() 来设置从第几条数据开始

    setMaxRows() 设置总共多少条数据

    EmailNotificationType.find.setFirstRow((page-1)*pageSize).setMaxRows(pageSize).findUnique()

    Ebean也可以直接执行sql语句

    Ebean.createSqlQuery()

    SqlUpdatesql = Ebean.createSqlUpdate("UPDATE Apps SET numViews = numViews + 1 WHERE id = ?");

    sql.setParameter(1, app.getId());

    sql.execute();

    相关文章

      网友评论

        本文标题:play实体类的编写以及Ebean的使用

        本文链接:https://www.haomeiwen.com/subject/opzsjxtx.html