博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ebean的使用教程
阅读量:5799 次
发布时间:2019-06-18

本文共 4726 字,大约阅读时间需要 15 分钟。

hot3.png

从2018年,一直在做服务器相关的技术积累。在公司,从一个客户端程序员,主动要求做服务器任务,希望借机提升自己的服务器技术应用能力。私下一直研究的是vert.x的相关技术,奈何公司使用的是php + yii的解决方案。只能静下心来,吸取公司的方案中的一些优势,比如,yii的 "Query Builder"是非常高效方便……翻阅各种资料,发现了ebean。国内的大部分文档都吹嘘它高效,并没有一份入门级的使用教程。本文,是笔者的一些使用心得。分享于此,希望对大家学习ebean有所帮助。

一、使用的环境介绍

idea + gradle + kotlin

二、idea的ebean插件安装 (必须做的)

安装方法:

  • 打开idea, File > Settings > Plugins > "Ebean 11" 来安装插件,如图所示:

  • 打开bean增加工具,确保build下的 "Ebean XXXX"前面有一个小勾勾, 如图所示:

注:如果你没有做这步操作,运行的时候,会抛出 “io.ebean.config.BeanNotEnhancedException”的异常。

Exception in thread "main" io.ebean.config.BeanNotEnhancedException: Bean class org.example.domain.channel_statistics_ret is not enhanced? Check packages specified in ebean.mf. If you are running in IDEA or Eclipse check that the enhancement plugin is installed. See https://ebean.io/docs/trouble-shooting#not-enhanced	at io.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1581)	at io.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1446)	at io.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1355)	at io.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:770)	at io.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:374)	at io.ebeaninternal.server.core.InternalConfiguration.
(InternalConfiguration.java:197) at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:124) at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:35) at io.ebean.EbeanServerFactory.createInternal(EbeanServerFactory.java:109) at io.ebean.EbeanServerFactory.create(EbeanServerFactory.java:70) at MainKt.main(main.kt:26) at MainKt.main(main.kt)

三、修改Gradle,配置依赖 (必须做的)

参考:

1、在gradle中加入slf4j的依赖。

compile 'org.slf4j:slf4j-api:1.7.26'compile 'org.slf4j:slf4j-nop:1.7.26'

注: 我这里是使用的slf4j-nop,还有什么slf4j-simple之类的也可以使用,但是千万不要在您的gradle依赖中同时出现。

2、 ebean及jdbc的依赖

compile 'io.ebean:ebean:11.39.1'compile 'mysql:mysql-connector-java:8.0.11'

注:我这里是mysql的jdbc依赖,您根据需求安装适合您的依赖

3、如果需要使用Ebean的 Query beansa功能 (可选,笔者建议不要加上)

笔者认为这个会使代码出现更多隐晦的东西,所以不建议使用。比如你的实体类Customer,它会自动生成一个QCustomer方便查询。 如果您知道那是啥,且强烈要使用可以参考: 以及完整的gradle的配置事例:

4、一些易于调试的东西(可选,但强烈建议加上)

ebean {    debugLevel = 1}test {    testLogging.showStandardStreams = true    testLogging.exceptionFormat = 'full'}

附我配置的完整代码:

group 'org.huoyaojing'version '1.0-SNAPSHOT'buildscript {    repositories {        mavenLocal()        mavenCentral()    }    dependencies {        classpath "io.ebean:ebean-gradle-plugin:11.27.1"        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11"    }}apply plugin: 'idea'apply plugin: 'io.ebean'apply plugin: "org.jetbrains.kotlin.jvm"repositories {    mavenCentral()}ebean {    debugLevel = 1}test {    testLogging.showStandardStreams = true    testLogging.exceptionFormat = 'full'}dependencies {    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"    compile 'io.ebean:ebean:11.39.1'//    compile 'org.postgresql:postgresql:42.2.2'    compile  'io.ebean.test:ebean-test-config:11.39.1'    compile 'mysql:mysql-connector-java:8.0.11'    compile 'org.slf4j:slf4j-api:1.7.26'    compile 'org.slf4j:slf4j-nop:1.7.26'}compileKotlin {    kotlinOptions.jvmTarget = "1.8"}compileTestKotlin {    kotlinOptions.jvmTarget = "1.8"}

四、构建实体类

参考:

五、配置ebean

配置ebean的方法有很多,可以是直接纯代码,也可以采用配合配置文件来配置

1、纯代码配置

var cfg =  ServerConfig()    var properties =  Properties()    properties.put("ebean.db.ddl.generate", "true")    properties.put("ebean.db.ddl.run", "false")     //注意,如果这里设置了true,会删除掉你原来的数据,然后再创建表    properties.put("datasource.db.username", "您的db用户名")    properties.put("datasource.db.password", "您的DB密码")    properties.put("datasource.db.databaseUrl","jdbc:mysql://10.0.6.211:3306/test")  //db的路径    properties.put("datasource.db.databaseDriver", "com.mysql.cj.jdbc.Driver")    //mysql的jdbc驱动    cfg.loadFromProperties(properties);    var server = EbeanServerFactory.create(cfg);

2、通过ebean.properties进行加载

ServerConfig.loadFromProperties() 可以自动从ebean.properties加载配置。 您可以在resources里添加一个ebean.properties定义如下的文件

ebean.search.packages= com.demo# the name of the default serverdatasource.default=db## define these in external properties ...datasource.db.username=rootdatasource.db.password=rootdatasource.db.databaseUrl=jdbc:mysql://localhost:3306/test?useSSL=falsedatasource.db.databaseDriver=com.mysql.jdbc.Driver

3、默认数据

将某个配置成数据库默认配置,或者如配置文件那样子

ServerConfig config = new ServerConfig();config.setDefaultServer(true);

默认情况下使用 Ebean.getDefaultServer() 或者 Ebean.getServer(null)使用的是默认数据库配置信息。

当需要使用指定的数据库,例上面所配置的db,则可以用 Ebean.getServer("db")

转载于:https://my.oschina.net/jjyuangu/blog/3055995

你可能感兴趣的文章
【转】python引用DLL文件
查看>>
请你相信我!!!
查看>>
CentOS 7 两步安装启动Mysql(mariadb)
查看>>
maven error: Duplicate fragment name
查看>>
把bitmap保存成 BMP的格式 并且位深度为1
查看>>
ZXing二维码
查看>>
JavaScript基础 (五): 变量、表达式与操作符
查看>>
C++中的匿名函数(译)
查看>>
计划任务crond、系统服务管理工具chkconfig/systemctl
查看>>
一个字,那就是烦,在找东西
查看>>
IDEA_15构建SSM登录功能(2)
查看>>
cas 认证流程分析
查看>>
【大福利】极客时间专栏返现二维码大汇总
查看>>
树莓派3B 安装Ubuntu Mate笔记
查看>>
Smobiler4.6预告之——右上角“关于页”的开放说明
查看>>
Sublime Text 2 设置文件详解
查看>>
linux下svn的安装配置和使用
查看>>
SpringCloud微服务架构解决方案(三)--springcloud负载均衡Ribbon
查看>>
javascript 实现拖拽-jquery实现
查看>>
angular之cloak
查看>>