hangscer

hangscer

elixir

Essential Slick 学习笔记(三) —— Creating and Modifying Data

Inserting RowsInserting Single Rows插入单行数据 12val insertAction= messages += Message(1L,"jianghang2","asdsadsa2")val r:Int=Await.result(db.run(insertAction),Inf) Primary Key Allocation主键分配策略:当插入数据数据时,我们需要告诉数据库自动分配主键,还是由用户分配主键。 Slick允许我们在声明模式列定义时,说明主键以及分配策略: 123456class MessageTable(tag: Tag)extends ...

Essential Slick 学习笔记(二)

Slick isn’t an ORMSlick不是ORM框架,如果你对Hibernate等框架熟悉的话,你可以会把Slick归结为ORM一类。但是它不是,and It’s best not to think of Slick in this way. ORM框架试图建立起模型与关系型数据库的映射。与之不同,Slick提供了更符合数据库风格(声明式)的系列工具,比如query、row和column。更多细节请参阅Coming from ORM to Slick。 总之,Slick的设计蛮巧妙的。 Importing Lib Code12import slick.jdbc.MySQLPr...

Essential Slick 学习笔记(一)

闲话💐以前呢,Slick没有认真的去学习,都是需要在用它的时候再去看文档,片段式地学习。 现在UnderSocre.io把它的图书开源了,借此机会系统的学学(你这么热爱学习,能有女朋友吗😂),作作笔记。 不得不说,Slick确实比Quill难得多,设计层面颇为繁琐,而且还是异步执行。如果对scala异步以及回调不太熟悉的同学,可能对Slick上手有难度。 不能简单的把Slick以及Quill这样的框架归结为ORM框架,因为其中还融入了Monad、Monoid等函数式概念。官方说他们的框架是FRM(Functional Relational Mapping),却是恰如其分。 简单入门s...

Advanced-Scala之cats学习笔记(二)

Monoids and Semigroups(幺半群与半群)至于什么是幺半群与半群,可以参考半群-wikipedia和幺半群-wikipedia。它们允许互相结合,针对Int、String、List、Option以及其它很多很多类型都有具体实例。Integer addition整数的加法操作是二元操作,两个整数相加仍然得到一个整数: 12scala> 1+2res0: Int = 3 当然对于加法操作,存在一个幺元0,有着这样的有趣的现象:a+0==0+a==a: 12345scala> 2+0res1: Int = 2scala> 0+2res2: Int = 2 加...

Advanced-Scala之cats学习笔记(一)

Underscore.io开源了他们的著作,比如《advanced scala with cats》、《essential Slick》、《essential lift》、《essential play》等等大作。借此机会学习学习cats库,开开眼界😂。 至于cats是什么呢?它是一款scala函数式编程库😈。 Type ClassType classes are a programming pattern originating in Haskell.类型类是源自于Haskell语言的编程模式。They allow us to extends existing libraries ...

Warts of the Scala Programming Language(中文翻译)

翻译自lihaoyi的文章(访问需梯子)原创翻译,转载请联系译者         Scala是我目前最喜欢的多用途的编程语言。然而它是有些缺陷的。语言中有些设计是经过仔细权衡,有些则是试验性的,那些愚蠢的问题所带来挫败感远超过他们的成功之处:warts(作者把语言中的失败之处比喻为疣子,中文把它比作糟粕更好)。这篇文章讲阐述我所认为的Scala语言的糟粕,希望可以提高人们对这些问题的认识,也希望可以集合更广大的社区力量来修复它。 About the Author: Haoyi is a software...

scala写算法-List、Stream、以及剑指Offer里部分题目基于scala解法

Stream(immutable)Stream是惰性列表。实现细节涉及到lazy懒惰求值、传名参数等等技术(具体细节详见维基百科-求值策略)。Stream和List是scala中严格求值和非严格求值两个代表性不可变函数式数据结构。考虑字符串拼接的表达式"foo"+"bar"的到"foobar",空串""就是这个操作的单位元(identity,数学中又称幺元),也就是说s+""或者""+s的值就是s。如果将三个字符串相加s+t+r,由于操作是可结合的(associativ...
蒋航
知难行易
FRIENDS
明嗨 高峰