Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:找不到ContextShift[cats.effect.IO]的隐式值_Scala_Scala Cats_Cats Effect - Fatal编程技术网

Scala:找不到ContextShift[cats.effect.IO]的隐式值

Scala:找不到ContextShift[cats.effect.IO]的隐式值,scala,scala-cats,cats-effect,Scala,Scala Cats,Cats Effect,我刚开始使用scala,希望与我的数据库建立连接 (我的知识来源于scala/doobie教程上的内容) 下面是代码: import doobie._ import doobie.implicits._ import cats.effect._ import cats.implicits._ import doobie.hikari._ ... val transactor: Resource[IO, HikariTransactor[IO]] = for { ce <

我刚开始使用scala,希望与我的数据库建立连接

(我的知识来源于scala/doobie教程上的内容)

下面是代码:

import doobie._
import doobie.implicits._
import cats.effect._
import cats.implicits._
import doobie.hikari._

...
val transactor: Resource[IO, HikariTransactor[IO]] =
    for {
      ce <- ExecutionContexts.fixedThreadPool[IO](32)         // our connect EC
      be <- Blocker[IO]                                       // our blocking EC
      xa <- HikariTransactor.newHikariTransactor[IO](
        "org.h2.Driver",                                      // driver classname
        "jdbc:mysql://localhost:3306/libraries",              // connect URL
        "root",                                               // username
        "",                                                   // password
        ce,                                                   // await connection here
        be                                                    // execute JDBC operations here
      )
    } yield xa
导入doobie_
导入doobie.its_
进口猫。效果_
进口猫_
输入doobie.hikari_
...
val事务处理程序:资源[IO,HikariTransactor[IO]]=
为了{

ce编译器无法在隐式作用域中找到
ContextShift[IO]
实例的问题,这是某些方法所必需的(不确定确切是哪个方法)。 您需要在隐式范围中声明自己的,如

val dbExecutionContext = ExecutionContext.global // replace with your DB specific EC.
implicit val contextShift: ContextShift[IO] = IO.contextShift(dbExecutionContext)
或作为错误建议消息
cats.effect.IOApp
已将
ContextShift[IO]
声明为
protectedimplicit def
-查看您可以在该代码所在的位置使用和传递引用的内容。 但是要小心,因为它使用了默认的全局执行上下文

希望这有帮助