欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:961
  2. 浏览总数:11,488,063
  3. 评论:3873
  4. 分类目录:103 个
  5. 注册用户数:5844
  6. 最后更新:2018年10月17日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

ScalikeJDBC:基于SQL的简洁DB访问类库

  ScalikeJDBC是一款给Scala开发者使用的简洁DB访问类库,它是基于SQL的,使用者只需要关注SQL逻辑的编写,所有的数据库操作都交给ScalikeJDBC。这个类库内置包含了JDBC API,并且给用户提供了简单易用并且非常灵活的API。并且,QueryDSL使你的代码类型安全的并且可重复使用。我们可以在生产环境大胆地使用这款DB访问类库。

工作在JDBC层上

  不管你喜不喜欢,JDBC是一个稳定的标准接口,而且绝大多数的RDBMS都支持JDBC接口,所以我们可以通过JDBC接口去访问RDBMS里面的数据。ScalikeJDBC目前测试所支持的RDBMS如下:

  1、PostgreSQL
  2、MySQL
  3、H2 Database Engine
  4、HSQLDB

我们相信,ScalikeJDBC除了支持上面的数据库,还应该支持其他的RDBMS(比如:Oracle, SQL Server等等)。

支持Amazon Redshift, Facebook Presto

  因为Amazon Redshift, Facebook Presto也是支持JDBC的,这意味这你也可以使用ScalikeJDBC来访问里面的是数据。

非常少的依赖

  ScalikeJDBC的核心对外部的依赖非常少,所以你不会被依赖所烦恼。ScalikeJDBC仅仅依赖于以下的东西:

  1、JDBC Drivers
  2、Commons DBCP
  3、Joda Time 2.x
  4、SLF4J API

当然,你完全可以用c3p0替代commons-dbcp,因为ConnectionPool的实现默认是不提供的。

非阻塞

  很不幸的是,JDBC驱动会在套接字IO上阻塞。所以使用JDBC在异步地事件驱动架构中和RDBMS系统交互可能不太合适。然而,实际上大多数现实中的应用程序根本不需要事件驱动架构,JDBC仍然是JVM上应用程序的重要基础设施。

  如果你需要使用到非阻塞的数据库访问技术,可以考虑使用ScalikeJDBC-Async,这个类库提供了基于JDBC的非阻塞方式来访问PostgreSQL和MySQL里面的数据。ScalikeJDBC-Async类库可以到这里了解:https://github.com/scalikejdbc/scalikejdbc-async

  然而ScalikeJDBC-Async目前还是除于alpha阶段,如果你不是基于研究或者自己修复里面bug的动机,我们不建议你现在去使用,而是等到稳定版本再去使用。

本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【ScalikeJDBC:基于SQL的简洁DB访问类库】(https://www.iteblog.com/archives/1597.html)
喜欢 (1)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!