为什么80%的码农都做不了架构师?>>>   

因为不想用 Play 官方支持的一些 ORM 框架,笔者开始在网上查询 Play 怎么整合 MyBatis ,但搜出来的结果往往都是 Play 1 相关的资料,或者使用了已经过时的 API 。

最后还是从 MyBatis 整合 Guice 的教程中得到启发,发现 Play 2.5 整合 MyBatis 还是很容易的。

Play 使用 Guice 做依赖注入,只需要添加一个 MyBatisModule 的子类,就能轻松的将 MyBatis 整合到 Play 框架中。

首先在 build.sbt 添加依赖的库:

libraryDependencies ++= Seq("org.mybatis" % "mybatis" % "3.4.4","org.mybatis" % "mybatis-guice" % "3.9","com.google.inject.extensions" % "guice-multibindings" % "4.0"
)

application.conf 数据源配置:

db.my-db {driver = org.postgresql.Driverurl = "jdbc:postgresql://localhost:5432/postgres"username = "postgres"password = "postgres"
}

在 app 目录下创建 module 包 新建 PlayMyBatisModule 类:

package module;import com.google.inject.Key;
import com.google.inject.Provider;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import org.mybatis.guice.MyBatisModule;
import play.db.Database;
import play.db.NamedDatabaseImpl;public class PlayMyBatisModule extends MyBatisModule {@Overrideprotected void initialize() {environmentId("default");// 获取命名为 my-db 的数据源 ProviderProvider<Database> provider = binder().getProvider(Key.get(Database.class, new NamedDatabaseImpl("my-db")));bindDataSourceProvider(() -> provider.get().getDataSource());bindTransactionFactoryType(JdbcTransactionFactory.class);// 配置 Dao 类所在的包addMapperClasses("com.morven.product.mapper");}
}

在 application.conf 中添加模块:

play.modules.enabled+= "module.PlayMyBatisModule"

注意:

  • 如果使用 XML 映射文件,要把 XML 文件放在 conf 目录下与 Dao 类所在包相同结构的路径。XML 放在 app 目录下不会编译到 classes 中,运行时会报找不到 Statement 错误。
  • 如果使用 IDEA 开发,在 conf 新建目录的时候也要注意,不要把包路径建成目录的名字。我和同事都犯过把 com/morven/product/mapper 路径,建成了名字是 "com.morven.product.mapper" 的一个文件夹,在 IDEA 中还看不出问题。

如果要使用多个数据源,可以参考下一篇博文 Play Framework 2.5 整合 MyBatis —— 多数据源

转载于:https://my.oschina.net/morven/blog/1477319

Play Framework 2.5 整合 MyBatis相关推荐

  1. SpringBoot整合Mybatis超详细流程

    SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...

  2. mysql动态配置数据源_Spring整合Mybatis实现动态数据源切换教程配置

    一.摘要 这篇文章将介绍Spring整合Mybatis 如何完成SqlSessionFactory的动态切换的.并且会简单的介绍下MyBatis整合Spring中的官方的相关代码. Spring整合M ...

  3. SpringMVC整合mybatis(终结版)

    ssm框架是目前web开发中最流行的框架之一,这个框架快捷方便,搭建完成后是很容易进行项目的开发的. 本文将使用idea作为开发工具,并使用maven进行项目管理,进行ssm框架的搭建. 1. 整合思 ...

  4. SpringBoot整合MyBatis详细教程~

    目录 1. 导入依赖 2. 连接数据库 3. 编写数据库配置信息 4. 编写pojo实体类 5. 编写mapper接口 6. 编写mapper.xml 7. 编写controller 8. 测试 1. ...

  5. MyBatis - 6.Spring整合MyBatis

    1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...

  6. mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  7. Spring Boot 教程(三): Spring Boot 整合Mybatis

    教程简介 本项目内容为Spring Boot教程样例.目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中.如您觉得该项目对您有用,欢迎点击收藏和点赞按钮, ...

  8. SpringBoot第六篇:springboot整合mybatis

    本文主要讲解如何在springboot下整合mybatis,并访问数据库.由于mybatis这个框架太过于流行,所以我就不讲解了. 引入依赖 在pom文件引入mybatis-spring-boot-s ...

  9. Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 公司需要人.产品.业务和方向,方向又要人.产品.业务和方向,方向- 循环』 本文提纲 一 ...

最新文章

  1. 视频处理单元Video Processing Unit
  2. is this mysql server_远程连接MySQL数据库报错:is not allowed to connect to this MYSQL server的解决办法...
  3. Boost C++ 库
  4. 【译】A Beginner-Friendly Introduction to Containers, VMs and Docker
  5. pytorch卷积神经网络_资源|卷积神经网络迁移学习pytorch实战推荐
  6. dataframe列互换 python_统计学原理之python数据分析基础
  7. 使用nvl就不能groupby了吗_现在的手机大部分都不能换电池,使用1至2年就需要更换吗?...
  8. 宁波大学计算机专硕分数线,2019宁波大学研究生分数线汇总(含2016-2019历年复试)...
  9. 蚂蚁课堂视频笔记思维导图-4期 一、微服务技术
  10. 海洋磁力探测-G882海洋磁力仪内业处理软件MAP2000 操作指南
  11. 【zhasite】托业英语阅读技巧有哪些
  12. 提前祝福你和你和家人国庆节快乐,旅途愉快!
  13. 什么样的系统是一个好的的系统
  14. 起步晚了20年,韩国芯片凭什么打破美日封锁,做到世界第1?
  15. Java throw和throws关键字的使用及区别
  16. 【MySQL学习】使用视图、存储过程、游标和触发器
  17. Unity制作自定义消息提示框
  18. 数仓搭建——ODS层
  19. 项目经理如何更有效进行项目成本管理?
  20. DataV.GeoAtlas 全国GeoJSON数据(县区级)

热门文章

  1. 部分小区业主抵制人脸识别:我不在家,你都清楚
  2. 到2030年,人工智能会发展成什么样?
  3. 情感分析研究:还未结束!
  4. 几行代码轻松实现,Tensorlayer 2.0推出深度强化学习基准库
  5. 一禁了之还是放开应用?面部识别“人红是非多”
  6. SAP MM ME29N 试图取消审批报错 - Document has already been outputed(function not possible) -
  7. 布局自动驾驶L3级,探访北汽福田发动机生产基地!
  8. 干货丨卷积神经网络工作原理的直观解释
  9. Gartner发布2021年重要战略科技趋势!
  10. 怎样才算世界一流大学