play框架orm层实现
2016-07-20 09:30
441 查看
打开Ebean的方法是在conf/application.conf里打开ebean.default="models.*"。
先说下什么是Ebean吧。Ebean是一个开源的Java
ORM管理工具,
详细信息可以从官网http://www.avaje.org/了解,只要知道它是方便实体操作的框架是可以了。
要注意的一点是:Ebean好像和JPA不能同时用。我用了出错严重,希望指点。
ebean.default="models.*"是conf文件中默认的写法,
它的意思是说这个ebean要管理的类(实体)在models包下面。
所以如果你的包不是这种结构要自己改过来,多个类(包)用逗号分开就行。
play提供了一种用独立文件进行配置的方法,
新建一个conf/ebean.properties文件,把配置信息写里面也行。有兴趣的可以试试。
然后在实体类里增加一个Finder。可以很方便的进行数据库操作。可以参考
http://www.playframework.com/documentation/2.0.1/api/java/play/db/ebean/Model.Finder.html#Model.Finder(java.lang.String, java.lang.Class, java.lang.Class)
定义方式大致是:
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
public static Finder<A, B> finder = new Finder<A, B>(A.class, B.class);
其中A是主键的类型,B是实体的类型。
需要导入的是
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
import play.db.ebean.Model.Finder;
依赖包是\repository\local\play\play-java-ebean_2.10\2.1.0\jars\play-java-ebean_2.10.jar.
这样编译会报错,还需要依赖\repository\local\org.avaje.ebeanorm\avaje-ebeanorm-api\3.1.1\jars\avaje-ebeanorm-api.jar。
现在编译可以通过,但有运行时异常
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
ClassNotFoundException: com.avaje.ebeaninternal.server.core.DefaultServerFactory
加入包\org.avaje.ebeanorm\avaje-ebeanorm-server\3.1.2\jars\avaje-ebeanorm-server.jar后又报
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
ClassNotFoundException: com.avaje.ebean.enhance.agent.EnhanceConstants
继续加入包\org.avaje.ebeanorm\avaje-ebeanorm-agent\3.1.1\jars\avaje-ebeanorm-agent.jar
终于可以了。
先说下什么是Ebean吧。Ebean是一个开源的Java
ORM管理工具,
详细信息可以从官网http://www.avaje.org/了解,只要知道它是方便实体操作的框架是可以了。
要注意的一点是:Ebean好像和JPA不能同时用。我用了出错严重,希望指点。
ebean.default="models.*"是conf文件中默认的写法,
它的意思是说这个ebean要管理的类(实体)在models包下面。
所以如果你的包不是这种结构要自己改过来,多个类(包)用逗号分开就行。
play提供了一种用独立文件进行配置的方法,
新建一个conf/ebean.properties文件,把配置信息写里面也行。有兴趣的可以试试。
然后在实体类里增加一个Finder。可以很方便的进行数据库操作。可以参考
http://www.playframework.com/documentation/2.0.1/api/java/play/db/ebean/Model.Finder.html#Model.Finder(java.lang.String, java.lang.Class, java.lang.Class)
定义方式大致是:
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
public static Finder<A, B> finder = new Finder<A, B>(A.class, B.class);
其中A是主键的类型,B是实体的类型。
需要导入的是
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
import play.db.ebean.Model.Finder;
依赖包是\repository\local\play\play-java-ebean_2.10\2.1.0\jars\play-java-ebean_2.10.jar.
这样编译会报错,还需要依赖\repository\local\org.avaje.ebeanorm\avaje-ebeanorm-api\3.1.1\jars\avaje-ebeanorm-api.jar。
现在编译可以通过,但有运行时异常
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
ClassNotFoundException: com.avaje.ebeaninternal.server.core.DefaultServerFactory
加入包\org.avaje.ebeanorm\avaje-ebeanorm-server\3.1.2\jars\avaje-ebeanorm-server.jar后又报
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/665772775e2a5dc94461ec01d3172b50.png)
ClassNotFoundException: com.avaje.ebean.enhance.agent.EnhanceConstants
继续加入包\org.avaje.ebeanorm\avaje-ebeanorm-agent\3.1.1\jars\avaje-ebeanorm-agent.jar
终于可以了。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- 解决play out of memory的问题
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序