当前位置: 首页 > 软件库 > 数据库相关 > >

Bun-go

SQL 数据库客户端
授权协议 BSD-2-Clause
开发语言 Google Go
所属分类 数据库相关
软件类型 开源软件
地区 不详
投 递 者 吕成业
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Bun 是一个适用于 PostgreSQL、MySQL 和 SQLite 的简单且性能良好的 ORM。

Bun 是 Go 的一个 SQL-first 的数据库客户端。SQL-first 意味着大多数 SQL 查询可以自动编译为 Bun 表达式,而 Bun 表达式看起来和感觉就像 SQL 查询。

Bun 的目的是允许使用古老的SQL编写查询,并帮助将结果扫描成常见的 Go 类型:structs、maps、slices 和  columns。

主要特点是:

  • 适用于 PostgreSQL、 MySQL、 SQLite
  • 选择 map、struct、slice of maps/structs/vars
  • 批量插入
  • 使用公用表表达式批量更新
  • 批量删除
  • Fixtures
  • 迁移
  • 软删除
package main

import (
	"context"
	"database/sql"
	"fmt"

	"github.com/uptrace/bun"
	"github.com/uptrace/bun/dialect/sqlitedialect"
	"github.com/uptrace/bun/driver/sqliteshim"
	"github.com/uptrace/bun/extra/bundebug"
)

func main() {
	ctx := context.Background()

	// Open an in-memory SQLite database.
	sqlite, err := sql.Open(sqliteshim.ShimName, "file::memory:?cache=shared")
	if err != nil {
		panic(err)
	}

	// Create a Bun db on top of it.
	db := bun.NewDB(sqlite, sqlitedialect.New())

	// Print all queries to stdout.
	db.AddQueryHook(bundebug.NewQueryHook(bundebug.WithVerbose()))

	var rnd int64

	// Select a random number.
	if err := db.NewSelect().ColumnExpr("random()").Scan(ctx, &rnd); err != nil {
		panic(err)
	}

	fmt.Println(rnd)
}
  • 1:第一步先下载 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 2:解压安装文件 tar -xvf  mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 这个解压缩后可以根据个人情况选择安装位置 例如我的:/app 我会mv  mysql-5.7.20-linux-glibc2.12-x86_64  /app/mysql 3

  • golang的依赖注入dig 一篇文章带你了解golang依赖注入 dig介绍: dig 库是一个为 go 提供依赖注入 (dependency injection) 的工具包,基于 reflection 实现的。 在项目中会涉及到很多对象,它们之间的依赖关系可能是这样的 对象 D 的创建依赖于对象 B 和 对象 C 对象 B 和对象 C 的创建依赖于对象 A func NewD(b *B,c *

 相关资料
  • 我的Grails应用程序在开发模式下使用h2数据库(Grails应用程序的默认行为)。中的DB连接设置是 我正在尝试使用IntelliJ IDEA的数据库客户端工具为此数据库建立连接。我开始这样创建连接 然后在下面的对话框中,输入JDBC URL 并选择“模式”上的所有可用数据库 “Test Connection”(测试连接)按钮表示成功,但从红色圆圈中可以看到,没有找到任何表格。似乎我已经正确地

  • Bun

    Bun 是采用 Zig 语言编写的高性能 “全家桶” JavaScript 运行时,官方称其为 "all-in-one JavaScript runtime"。Bun 提供了打包、转译、安装和运行 JavaScript & TypeScript 项目的功能,内置原生打包器 (native bundler)、转译器、task runner、npm 客户端,以及 fetch、WebSocket等 We

  • 开发目的 在一些简单的项目里面我们可能并不想用到复杂的ORM库,只想简单的使用原生SQL快速开发,或者是一些简单的CURD操作,这个库在sqlx的基础上进行了一些简单的封装,同时支持struct和map两种形式可以方便的进行快速开发,并且提供辅助结构体生成工具 genstruct 可以用于一键将数据库表转换成golang struct代码 功能特性 支持基于struct的增删改查快速操作 支持基于

  • 问题内容: 我正在寻找一些通用策略,用于将中央服务器上的数据与并不总是在线的客户端应用程序进行同步。 在我的特定情况下,我有一个带sqlite数据库的android手机应用程序和一个带MySQL数据库的PHP Web应用程序。 用户将能够在电话应用程序和Web应用程序上添加和编辑信息。我需要确保即使手机无法立即与服务器通信,在一个地方所做的更改也会在所有地方反映出来。 我不关心如何将数据从手机传输

  • 问题内容: 我已经使用sqlite3在xcode中创建了一个应用程序。我想创建一个名为sync的按钮以与服务器中的mysql数据库进行同步。关于同步过程有什么建议吗?请告诉我。 问题答案: 在服务器上使用Web服务返回架构版本号和上次更新的时间戳记。如果客户端已过时,它将再次调用以获取更新的架构和/或新数据。

  • 问题内容: 我基本上想将哈希表存储在磁盘上,以便以后查询。我的程序是用Java编写的。哈希表从字符串映射到列表。 有很多键值存储,但是经过大量研究/阅读后,不清楚哪个键值存储最适合我的目的。这对我很重要。 简单的键值存储,使您可以使用单个键检索值。 良好的Java客户端,有据可查。 数据集很小,不需要高级功能。同样,我希望它很简单。 我研究了Redis和MongoDB。两者看起来都很有希望,但对我

  • 我使用CAS和Spnego支持,KDC是192.168.1.244,我的领域是示例。COM我测试了我的本地Windows域环境,我可以从示例中获得票证。com我用“kinit”命令测试它,但在CAS spnego环境中,在Kerberos数据库中找不到异常客户端,我已经在C:\windows\krb5.ini中创建了它,内容如下 krb5.ini 异常报告如下: 但为什么在kerberos数据库中

  • gosql 是一款 golang style 语法的 golang orm 库。 优雅的语法,支持批量插入; 轻松嵌套条件,处理各种复杂的查询 sql,诸如:and 和 or 组合; 全语法支持:for update 锁、is null、exists 子查询等基本上所有 sql 语法 特xing Golang-style SQL builder go语言风格sql生成 Unlimited nest