首页 > 数据库 >go使用sqlite3

go使用sqlite3

时间:2023-12-13 20:23:58浏览次数:41  
标签:err log nil db sqlite3 使用 go Fatal name

在Web开发中,经常需要将数据存储到数据库中以便进行管理和处理。gosqlite3是一个轻量级的sqlite3驱动,它为Golang提供了快速、稳定的sqlite3支持。

package main

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "test.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    sqlStmt := `
    create table foo (id integer not null primary key, name text);
    delete from foo;
    `
    _, err = db.Exec(sqlStmt)
    if err != nil {
        log.Printf("%q: %s\n", err, sqlStmt)
        return
    }

    tx, err := db.Begin()
    if err != nil {
        log.Fatal(err)
    }
    stmt, err := tx.Prepare("insert into foo(id, name) values(?, ?)")
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()
    for i := 0; i < 100; i++ {
        _, err = stmt.Exec(i, fmt.Sprintf("世界%03d", i))
        if err != nil {
            log.Fatal(err)
        }
    }
    tx.Commit()

    rows, err := db.Query("select id, name from foo")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()
    for rows.Next() {
        var id int
        var name string
        err = rows.Scan(&id, &name)
        if err != nil {
            log.Fatal(err)
        }
        log.Println(id, name)
    }
    err = rows.Err()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("success")
}

windows必须安装gcc环境,才能支持sqlite

mingw-w64 项目提供了很多 Windows 平台的工具链和包,这里以 w64devkit 为例,安装 C 和 C++ 编译器。大家可以根据自己的需要选择对应的工具。

将下载的 w64devkit 压缩包解压后,放到任意目录即可,这里将其拷贝到 C:\Program Files (x86)\w64devkit。

解压后 w64devkit,其目录如下:

在 bin 目录下,可以看到相关的编译器和 Linux 环境下常用的命令。

配置环境变量

验证

打开命令行 Windows cmd 或 PowerShell,执行如下命令:

gcc --version

最后执行 go run main.go (开启一个cmd黑窗口运行没问题,但在golang ide控制台输出貌似有问题)

 

标签:err,log,nil,db,sqlite3,使用,go,Fatal,name
From: https://www.cnblogs.com/beatle-go/p/17899836.html

相关文章

  • 使用富文本编辑器KindEditor上传图片,一直显示:上传中,请稍后... 的解决办法
    问题详细:在使用KindEditor上传图片时,后端已经接收到了,但前端仍在加载如下图: 解决办法:在配置文件中书写以下代码:X_FRAME_OPTIONS='ALLOWALL' 原因:由于Django配置文件中默认将X_FRAME_OPTIONS配置为了DENY——表示该页面不允许在frame中展示,即便是在相同域名......
  • Argo Rollouts 基础
    ArgoRollouts概述ArgoRollouts是一个Kubernetes控制器和一组CRD,为Kubernetes提供高级部署功能,例如蓝绿、金丝雀、金丝雀分析、experimentation和渐进式交付功能。ArgoRollouts(可选)与IngressController和服务网格集成,利用其流量治理功能在更新期间逐渐将流量转移到新......
  • SQLite 安装与使用
    什么是SQLite?SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite源代码不受版权限制。SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、......
  • linux下使用gdb
    运行linux时,我们可以为程序设定程序在崩溃的时候生成core文件,以便于我们可以查找程序崩溃的原因。步骤:1.core文件配置2.配置生成core文件名称和路径3.gdb调试core文件4.测试带动态库的程序core文件配置查看系统配置生成core文件大小,输入命令行ulimit-c/ulimit-a命......
  • 使用免费内网穿透工具随时随地访问PVE(Proxmox Virtual Environment)
    什么是PVE?ProxmoxVirtualEnvironment(简称ProxmoxVE)是一种开源的虚拟化平台,它集成了虚拟化和容器技术。以下是一些导致越来越多人使用ProxmoxVE的原因:开源性质:ProxmoxVE是开源软件,这意味着用户可以自由地查看、修改和分发其源代码。这种自由度吸引了许多用户,尤其是那些寻求经......
  • 铁威马NAS使用docker方式运行Solopace.Gem客户端
     安装DockerManagerNAS系统版本:系统桌面点击启动“应用中心”,搜索docker,选择“DockerManager”进行安装选择“已安装”菜单栏,找到DockerManager并启用开启ssh远程连接桌面打开:控制面板>>终端与SNMP>>Telnet/SSH,按照下图设置并应用运行SolopaceGemDocker容器使用任意支持ssh协......
  • 2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条, 首先将字母a
    2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条,首先将字母a到z编号为0到25编号,纸条上共有n个整数ai,其中a1表示密码里第一个字母的编号,若i>1的话就表示第i个字母和第i-1个字母编号的差值,例如,a2就代表密码中第1个字母和第2个字母编号的差值,若密码是acb,那么纸......
  • 六、Playbook基本使用
    六、Playbook基本使用6.1Playbook介绍​ ansbile-playbook是一系列ansible命令的集合,利用yaml语言编写。playbook命令根据自上而下的顺序依次执行。同时,playbok开创了很多特性,它可以允许你传输某个命令的状态到后面的指令,如你可以从一台机器的文件中抓取内容并附为变量,然后在另......
  • 2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条, 首先将字母a
    2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条,首先将字母a到z编号为0到25编号,纸条上共有n个整数ai,其中a1表示密码里第一个字母的编号,若i>1的话就表示第i个字母和第i-1个字母编号的差值,例如,a2就代表密码中第1个字母和第2个字母编号的差值,若密码是acb,......
  • 简单使用
    publicclassStateListenerimplementsApplicationListener<ContextRefreshedEvent>{@ResourceprivateConnectionFactoryconnectionFactory;@BeanpublicQueueserviceQueue(){returnnewQueue(SERVICE_QUEUE);}/**......