Slick-PG 使用教程

Slick-PG 使用教程

slick-pgSlick extensions for PostgreSQL项目地址:https://gitcode.com/gh_mirrors/sl/slick-pg

1、项目介绍

Slick-PG 是一个针对 PostgreSQL 数据库的 Slick 扩展库,它提供了对 PostgreSQL 特定数据类型和功能的支持。Slick 是 Scala 语言的一个数据库查询和访问库,而 Slick-PG 则在此基础上增加了对 PostgreSQL 的增强功能,如 JSON、Range、Array 等类型的支持。

2、项目快速启动

环境准备

  • Scala 2.13 或更高版本
  • PostgreSQL 数据库
  • SBT 构建工具

添加依赖

build.sbt 文件中添加以下依赖:

libraryDependencies ++= Seq(
  "com.github.tminglei" %% "slick-pg" % "0.22.2",
  "com.github.tminglei" %% "slick-pg_play-json" % "0.22.2" // 如果需要 Play JSON 支持
)

初始化数据库连接

创建一个数据库配置文件 application.conf

db {
  driver = "org.postgresql.Driver"
  url = "jdbc:postgresql://localhost/test"
  user = "test"
  password = "test"
}

创建一个 Slick 数据库对象:

import com.typesafe.config.ConfigFactory
import slick.jdbc.PostgresProfile.api._

val dbConfig = ConfigFactory.load().getConfig("db")
val db = Database.forConfig("db", dbConfig)

定义表模型

import slick.jdbc.PostgresProfile.api._
import play.api.libs.json._

case class User(id: Long, name: String, data: JsValue)

class Users(tag: Tag) extends Table[User](tag, "users") {
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def name = column[String]("name")
  def data = column[JsValue]("data")

  def * = (id, name, data) <> (User.tupled, User.unapply)
}

val users = TableQuery[Users]

创建表和插入数据

val setup = DBIO.seq(
  users.schema.create,
  users += User(1, "Alice", Json.obj("age" -> 30)),
  users += User(2, "Bob", Json.obj("age" -> 25))
)

db.run(setup)

查询数据

val query = users.filter(_.name === "Alice").result

db.run(query).map { users =>
  users.foreach(println)
}

3、应用案例和最佳实践

应用案例

Slick-PG 可以用于构建复杂的业务系统,特别是那些需要处理大量 JSON 数据或特定 PostgreSQL 数据类型的应用。例如,一个电子商务平台可以使用 Slick-PG 来存储和查询商品的详细信息,其中商品信息以 JSON 格式存储。

最佳实践

  • 类型映射:确保所有 PostgreSQL 特定类型都正确映射到 Scala 类型。
  • 性能优化:使用适当的索引和查询优化技术来提高数据库性能。
  • 错误处理:在数据库操作中加入适当的错误处理机制,以应对可能的异常情况。

4、典型生态项目

  • Play Framework:结合 Play Framework 使用 Slick-PG,可以快速构建 Web 应用。
  • Akka Persistence:使用 Slick-PG 作为 Akka Persistence 的后端存储,实现事件溯源和持久化。
  • Quill:结合 Quill 查询库使用 Slick-PG,可以获得更灵活的查询 DSL。

通过以上步骤,您可以快速上手并使用 Slick-PG 进行 PostgreSQL 数据库操作。希望本教程对您有所帮助!

slick-pgSlick extensions for PostgreSQL项目地址:https://gitcode.com/gh_mirrors/sl/slick-pg

基于MMSkeleton工具包中的ST-GCN模型实现一种基于动态拓扑图的人体骨架动作识别算法python源码+使用说明.zip 改进ST-GCN模型的骨架拓扑图构建部分,使用持续学习思想动态构建人体骨架拓扑图. 将具有多关系特性的人体骨架序列数据重新编码为关系三元组, 并基于长短期记忆网络, 通过解耦合的方式学习特征嵌入. 当处理新骨架关系三元组时, 使用部分更新机制 动态构建人体骨架拓扑图, 将拓扑图送入ST-GCN进行动作识别。 运行MMSKeleton工具包参考[GETTING_STARTED.md](./doc/GETTING_STARTED.md) - 单独使用ST-GCN模型进行人体动作识别参考[START_RECOGNITION.md](./doc/START_RECOGNITION.md) - 训练基于动态拓扑图的人体骨架动作识别算法 ``` shell cd DTG-SHR python ./mmskeleton/fewrel/test_lifelong_model.py ``` - 测试基于动态拓扑图的人体骨架动作识别算法 ``` shell cd DTG-SHR python ./mmskeleton/fewrel/train_lifelong_model.py ``` - 可视化算法运行结果 基于web server搭建前端 [[参考]](https://blog.csdn.net/gzq0723/article/details/113488110) 1、前端模块:包含 'static与'templates'文件夹为界面展示相关的代码。 templates里面包含了两个html的结构文档,用来定义浏览器的显示界面。 static里面的css和img用来修饰界面。 2、服务模块: servel.py里面是web服务的一个业务逻辑。 运行算法性能可视化web服务 ``` shell cd DTG-SHR python ./server.py ``` 【备注】 1、该资源内项目代码百分百可运行,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毛彤影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值