2、基于ARM平台Golang简单Demo:使用sqlite3数据库

2023-10-26

arm平台为M3352核心板。

编译环境为Ubuntu14.04

目标:在Ubuntu环境编译Go代码,在arm平台运行,使用sqlite3数据库

源代码文件名:main.go

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/mattn/go-sqlite3-master"
	"os"
)

func main(){
	//creat database
	db,err := sql.Open("sqlite3","./MyDatabase.db")
	if err != nil {
		fmt.Fprintf(os.Stderr, "Open database: %v\n", err)
		os.Exit(1)
	}

	//creat table
	sql := "CREATE TABLE STUDENTS(ID INT PRIMARY KEY     NOT NULL, NAME           TEXT    NOT NULL,AGE            INT     NOT NULL);"
	_,err = db.Exec(sql)
	if err != nil{
		fmt.Fprintf(os.Stderr, "Creat Table: %v\n", err)
		os.Exit(1)
	}

	//insert
	sql = "INSERT INTO STUDENTS (ID,NAME,AGE) VALUES (1, 'LiLi', 15);INSERT INTO STUDENTS (ID,NAME,AGE) VALUES (2, 'Lucy', 16); "
	_,err = db.Exec(sql)
	if err != nil{
		fmt.Fprintf(os.Stderr, "Insert: %v\n", err)
		os.Exit(1)
	}

	//select
	rows,err := db.Query("SELECT * FROM STUDENTS")
	if err != nil{
		fmt.Fprintf(os.Stderr, "Select: %v\n", err)
		os.Exit(1)
	}
	for rows.Next(){
		var id int
		var name string
		var age int
		err := rows.Scan(&id,&name,&age)
		if err != nil{
			fmt.Fprintf(os.Stderr, "Select Rows: %v\n", err)
			os.Exit(1)
		}
		fmt.Println(id,name,age)
	}

	//delete
	_,err =  db.Exec("DELETE FROM STUDENTS WHERE ID=1")
	if err != nil{
		fmt.Fprintf(os.Stderr, "Delete: %v\n", err)
		os.Exit(1)
	}
	fmt.Println("End")
}

编译指令:

CGO_ENABLED=1 GOARCH=arm CC=arm-none-linux-gnueabi-gcc go build main.go 

执行结果:

[root@M3352 test]# ./main
1 LiLi 15
2 Lucy 16
End
[root@M3352 test]#

查看数据库MyDatabase.db,可发现数据已经正常写入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2、基于ARM平台Golang简单Demo:使用sqlite3数据库 的相关文章

  • 如何确定 go 中当前运行的可执行文件的完整路径?

    我一直在 osx 上使用这个函数 Shortcut to get the path to the current executable func ExecPath string var here os Args 0 if strings H
  • 实现具有更广泛方法签名的接口

    在Go中 是否有一种方法可以使用方法来实现接口 其中实现中相应方法的返回类型 比 预期返回类型 更宽 这很难解释 所以这里有一个例子 在 Go Playground 中运行以下示例代码时出现此错误 prog go 36 14 cannot
  • 在复杂的文件夹结构中进行测试

    我正在 golang 中构建一个设计模式存储库 为了运行所有测试 我使用这个 bash 脚本 有用 bin bash go test creational abstract factory go go test creational bui
  • Golang 结构体初始化

    有一个像这样的简单结构 type Event struct Id int Name string 这两种初始化方法有什么区别呢 e1 Event Id 1 Name event 1 e2 Event Id 2 Name event 2 为什
  • 有没有办法间歇性地执行重复性任务?

    有没有办法在 Go 中执行重复的后台任务 我在想类似的事情Timer schedule task delay period 在爪哇 我知道我可以用 goroutine 来做到这一点Time sleep 但我想要一些容易停止的东西 这是我得到
  • Facebook服务器端登录、CORS

    我正在实现一个带有 FB 服务器端登录的网站 简化步骤如下 一个简单的按钮触发 JS 脚本 该脚本调用我的后端 APIhttps localhost fblogin function sendFbLoginData get https lo
  • 我们如何在 Go 中使用通道来代替互斥锁?

    通道将通信 值的交换 与同步相结合 保证两个计算 goroutine 处于已知状态 如何使用 Google Go 中的通道来执行互斥量的功能 package main import sync var global int 0 var m s
  • 将中间件与 Golang Gorilla mux 子路由器结合使用

    如何将中间件应用到 Go 中大猩猩工具包 http www gorillatoolkit org 多路复用器子路由器 我有以下代码 router mux NewRouter StrictSlash true apiRouter router
  • 如何拥有在标准输出上更新的就地字符串

    我想输出到标准输出并让输出 覆盖 以前的输出 例如 如果我输出On 1 10 我想要下一个输出On 2 10覆盖On 1 10 我怎样才能做到这一点 stdout是一个流 io Writer 您无法修改已写入其中的内容 什么can更改的是该
  • 为什么前向引用 ADR 指令在 Thumb 代码中以偶数偏移进行汇编?

    To bx对于 Thumb 函数 需要设置地址的最低有效位 GNU 作为文档states https sourceware org binutils docs as ARM Opcodes html当地址是从一个生成时这是如何工作的adr伪
  • 运行最新版本时没有“最新”消息?

    我正在尝试使用Sparkle https sparkle project org与 Qt Go 的绑定 https github com therecipe qt app 闪光 m import
  • GCC:如何在 MCU 上完全禁用堆使用?

    我有一个在基于 ARM Cortex M 的 MCU 上运行并用 C 和 C 编写的应用程序 我用gcc and g 编译它并希望完全禁用任何堆使用 在 MCU 启动文件中 堆大小已设置为 0 除此之外 我还想禁止代码中意外使用堆 换句话说
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • 所有可能的 GOOS 价值?

    如果我做对了 GOOS在编译源代码时确定 为了更好地支持多个操作系统 我感兴趣的是GOOS可能 当然 Go 是开源的 所以它可能有无限的可能性 所以我真正想要的是一个 通用列表 已知值为 windows linux darwin or fr
  • 对嵌套结构使用自定义解组时,GoLang 结构无法正确解组

    我们需要对嵌套在多个其他结构中的结构使用自定义解组器 而这些结构不需要自定义解组器 我们有很多类似的结构B下面定义的结构 类似于嵌套A 代码的输出是true false 0 预期的true false 2 有任何想法吗 Go 游乐场示例he
  • 如何构建一个不链接到 musl libc 的 go 可执行文件

    So 官方的 Go 构建容器基于 Alpine 高山用途musl https www musl libc org 作为 libc 而不是 glibc 我需要在容器中构建一个可以在使用 glibc 的 Ubuntu 上运行的 Go 可执行文件
  • 结构体到磁盘的高效 Go 序列化

    我的任务是将 C 代码替换为 Go 而且我对 Go API 还很陌生 我正在使用 gob 将数百个键 值条目编码到磁盘页面 但 gob 编码有太多不需要的膨胀 package main import bytes encoding gob f
  • 仅导出嵌入结构实现的方法子集

    是否可以仅导出嵌入结构实现的方法的子集 这是一种与减少代码复制和粘贴非常不同的方法吗 还有更惯用的方法吗 type A struct func a A Hello fmt Println Hello func a A World fmt P
  • pq:函数unnest(未知)不是唯一的

    以下代码工作正常 但我想将 array a b c d e 定义为变量 rows err db Query select colname from SELECT date unnest array a b c d e AS colname
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul

随机推荐

  • Apache配置项目图片地址映射

    项目需求 将服务器物理磁盘上的某个目录 映射到apache能够访问到的url地址上 以此来达到图片和代码的分开部署 同时也方便项目后期的文件迁移 当图片资源变的越来越大 大到需要几个小时 甚至一整天的时间 来迁移图片资源时 这种分开部署的优
  • CMOS 图像传感器——Color Filter Array

    在介绍CMOS图像传感器的工作原理时候说道 像点 Sensor感光的基本单元叫做 像点 吸收入射光后会有一定概率激发出电子 这个过程叫做光电转换 光子激发出电子会被像点下方的电场捕获并存储起来备用 像点的作用可以类比成一个盛水的小桶 它可以
  • 数据库优化

    前言 毫不夸张的说咱们后端工程师 无论在哪家公司 呆在哪个团队 做哪个系统 遇到的第一个让人头疼的问题绝对是数据库性能问题 如果我们有一套成熟的方法论 能让大家快速 准确的去选择出合适的优化方案 我相信能够快速准备解决咱么日常遇到的80 甚
  • 《爬虫系列之爬取PPT》

    这次不多BB 直接上代码系列 import bs4 import requests headers user agent Mozilla 5 0 Windows NT 10 0 Win64 x64 AppleWebKit 537 36 KH
  • win10 64位 Compaq Visual Fortran(CVF)安装教程

    最近需要调试下fortran程序 它是fortran与c混编的 因此simply Fortran还不能满足需求 IVF还会涉及版本兼容与移植的问题更不想用 于是上网搜了下关于安装CVF的资料 发现似乎CVF的安装并不容易 甚至还有说不能安装
  • 高校宿舍管理系统

    高校宿舍管理系统 项目截图 1 项目概况 提到宿舍 现在无论是学校 还是工厂 都是在熟悉不过的了 学生宿舍楼 职工教员工 职工宿舍楼等等 每一栋楼房都有很多的房间 每个宿舍分配了多少个床位 住着什么人 那些床位是空的 那些房间是空的 这些都
  • 可用的公开 RTSP/ RTMP 在线视频流资源地址(亲测可行)

    可用的公开 RTSP RTMP 在线视频流资源地址 亲测可行 时间节点 2023 01 23 rtsp rtsp wowzaec2demo streamlock net vod mp4 BigBuckBunny 115k mp4 rtmp
  • R语言独立性检验-基础

    一 介绍三种检验独立性方法 1 卡方独立性检验 用chisq test 函数对二维表的行变量和列变量进行卡方独立性检验 gt library vcd gt mytable lt xtabs Treatment Improved data A
  • 基于Python的招聘系统的设计与实现-应聘兼职Python爬虫安装数据分析与可视化计算机毕业设计

    更多项目资源 最下方联系我们 目录 一 项目技术介绍 二 项目配套文档 部分内容 资料获取 一 项目技术介绍 该项目含有源码 文档 PPT 配套开发软件 软件安装教程 项目发布教程 包运行成功以及课程答疑与微信售后交流群 送查重系统不限次数
  • 打印机"启用双向支持"的意思

    在打印机的属性选项里面 有一项 启用双向支持 的选项 但是具体有什么作用 一直都不明白 今天特意查了一些资料 启用双向支持 简单来说就是来回打印 打印头从左向右走动时能打印 从右向左回来时不能打印 如果不启用 仅仅是从左向右走动时打印 重庆
  • pe联想服务器装系统教程视频,演示联想电脑u盘重装系统xp教程

    联想电脑U盘重装XP系统的方法很多朋友询问 其实现在很多电脑已经不支持XP系统的安装了 如果你的联想电脑是近几年购买的 还是安装win10系统比较保险 当然联想电脑安装系统过程中遇到问题也可以联系人工客服 联想电脑如何使用U盘重装系统XP呢
  • 'dependencies.dependency.version' for XXX:jar is missing

    SSM项目报错 pom文件
  • HAL库 串口收发函数解析

    一 UART Receive IT 对于CubeMX生成的代码 USART1 IRQHandler void 函数为了提高中断效率采用了回调机制 业务代码可以等中断关闭了再去处理 这样中断处理不会占用太多时间影响程序的执行效率 HAL库将函
  • chatGPT爆火,什么时候中国能有自己的“ChatGPT“

    目录 引言 一 ChatGPT爆火 二 中国何时能有自己的 ChatGPT 三 为什么openai可以做出chatGPT 四 结论 引言 随着人工智能技术的不断发展 自然语言处理技术也逐渐成为了研究的热点之一 其中 ChatGPT作为一项领
  • Mac利用VirtualBox安装虚拟机网络设置桥接模式不能上网问题记录

    Mac笔记本电脑利用VirtualBox安装了一个Ubuntu20 04虚拟机 默认网络为网络地址转换 NAT NAT模式是最简单的实现虚拟机上网的方式 你可以这样理解 Vhost访问网络的所有数据都是由主机提供的 vhost并不真实存在于
  • 剑指 Offer 61. 扑克牌中的顺子 --思路和心得

    class Solution 思路 用一个参数special来代表相差的值 就比如 1 2 5 2和5相差两个数字 就将 special 2 在进行此步运算的时候要时刻注意让当前数的前一个数不为0 如果遇到一个零 就让special 最后如
  • 【Pytorch】import torch报错from torch._C import *

    好久不用的conda环境torch env下导入torch报错 import torch Traceback most recent call last File line 1 in File F Coding Tools Anaconda
  • 简单易懂的讲解深度学习(入门系列之八)

    神经网络也许是计算机计算的将来 一个了解它的好方法是用一个它可以解决的难题来说明 假设给出 500 个字符的代码段 您知道它们是C C JAVA或Python 现在构造一个程序 来识别编写这段代码的语言 一种解决方案是构造一个能够学习识别这
  • 将windows下编写的QT代码在arm开发板(imx6ull)上运行

    将windows下编写的QT代码在arm开发板上运行 1 下载并编译tslib库 2 下载并编译Qt源码 2 1 下载Qt5的源码 2 2 修改qmake conf 2 3 配置编译选项 2 4 编译 3 开发板上配置Qt环境 3 1 复制
  • 2、基于ARM平台Golang简单Demo:使用sqlite3数据库

    arm平台为M3352核心板 编译环境为Ubuntu14 04 目标 在Ubuntu环境编译Go代码 在arm平台运行 使用sqlite3数据库 源代码文件名 main go package main import database sql