Golang使用XORM(SQLite)

  • 前言
  • 安装SQLite
  • SQLite简单使用
    • 创建数据库
    • 查看数据库
    • 创建表
    • 查看表
    • 创建表记录,insert语句
    • 查看表数据,select语句
  • Golang使用SQLite(XORM)
    • 安装xorm
    • 使用xorm
    • 试试xorm
      • 下载gcc
      • 安装gcc
      • 配置gcc环境变量
    • 重新试试
  • xorm学习

前言

我们在beego搭建出来的api项目中,简单的对XORM(sqlite)进行一个学习使用,使用xorm。

安装SQLite

sqlite下载页面:SQLite Download Page

在页面中下载sqlite-tools-win32-x86-3380500.zip

SQLite简单使用

在sqlite安装文件夹中双击sqlite3.exe使用sqlite,如下:


创建数据库

sqlite是区分大小写的!!!

初次使用,我们先创建一个数据库,使用.open命令,如下

上面的命令创建了数据库文件 test.db,位于 sqlite3 命令同一目录下。

打开已存在数据库也是用 .open 命令,以上命令如果 test.db 存在则直接会打开,不存在就创建它。

查看数据库

一旦数据库被创建,您就可以使用 SQLite 的 .databases 命令来检查它是否在数据库列表中,如下所示:

数据库创建成功后,我们就应该创建表了。

创建表

使用create table命令创建表,如下:

sqlite> CREATE TABLE STUDENT(ID INT PRIMARY KEY     NOT NULL,NAME           TEXT    NOT NULL,AGE            INT     NOT NULL
);

查看表

创建表完成后,使用.tables查看表,如下:

创建表记录,insert语句

使用insert语句插入记录,如下:

INSERT INTO STUDENT (ID,NAME,AGE) VALUES (1, 'Paul', 32);

查看表数据,select语句

使用select语句查询表数据,如下:

SELECT * FROM STUDENT;

此外,还可以设置格式化的输出,如下:

sqlite>.header on
sqlite>.mode column
sqlite> SELECT * FROM STUDENT;

Golang使用SQLite(XORM)

安装xorm

数据库创建好了,我们就先把他放在一边,不管了。

安装xorm:

go get xorm.io/xorm

安装sqlite驱动:

go get github.com/mattn/go-sqlite3

也可以直接在项目中去import,然后让Goland去帮我们自动下载。

使用xorm

xorm教程:介绍 · Go语言中文文档-xorm (topgoer.com)

我们在之前使用beego创建的api项目中,自己创建一个dao文件夹,然后在这里面创建一个sqlite.go文件,该文件的作用是和数据库打交道(CRUD)。如下:

dao/userDao.go

package daoimport ("fmt""github.com/go-xorm/xorm"_ "github.com/mattn/go-sqlite3"
)var (Engine *xorm.Engine
)func init() {var err errorEngine, err = xorm.NewEngine("sqlite3", "D:/my/sqlite/install/sqlite-tools-win32-x86-3380500/test.db")if err != nil {fmt.Println(err)}fmt.Println("数据库引擎创建成功")err = Engine.Ping()if err != nil {fmt.Println(err)}fmt.Println("数据库连接成功")
}

然后在models里面调用我们的dao层,如下:

models/user.go

type User struct {Id       string  `xorm:"ID pk"`Username string  `xorm:"USERNAME"`Password string  `xorm:"PASSWORD"`Profile  Profile `xorm:"-"`
}
......
......
......
func GetAllUsers() map[string]*User {allUsers := make([]*User, 0)err := dao.Engine.Table("users").Find(&allUsers)if err != nil {fmt.Println(err)}for _, v := range allUsers {UserList[v.Id] = v}return UserList
}

从这里代码可以发现我查询的是users表,但是这个表和我上面示例创建的student表差不多,只是字段的区别,不用在意。

试试xorm

我们使用bee run启动项目,试试我们的xorm,如下:

我们使用bee run启动项目后,发现无法运行,项目报错。原因是sqlite需要用到gcc,所以我们需要去下载gcc。

下载gcc

gcc下载页面:Download | tdm-gcc (jmeubank.github.io)

我使用的是gcc 9.2,如下:

安装gcc

直接一直next,小白安装法,一步到位

1、双击exe文件

2、选择create

3、64位系统选择第二个

4、选择安装目录

5、选择组件

配置gcc环境变量

安装gcc完成后,需要把他加入到环境变量中,如下:

然后使用 gcc -v 命令验证gcc是否安装完成,如下:

重新试试

程序中打上断点,debug模式运行项目,依然打开我们的swagger,然后测试刚刚的GetAllUsers接口,看看结果,如下:

swagger:

项目调试:

可以看到我们数据库中的结果是已经取出来了的。然后我们塞到我们需要的UserList去。

在swagger上面也可以看见结果了,如下:

xorm学习

在上面的简单测试中,我们试了试xorm查找的Find方法,接下来,我们全面的讲讲xorm的东西。

文档 - XORM

XORM入门,使用SQLite相关推荐

  1. 大数据入门(SQLite手机本地轻量级数据库增删改查)

    SQLite手机本地轻量级数据库 数据库分为: 1.关系型数据库(mysql主外键属于关系型) 2.对象型数据库(oracle) 3.嵌入式数据库 案例: 安卓控件(5个Button)访问Activi ...

  2. Android入门(十一)SQLite CURD

    原文链接:http://www.orlion.ga/594/ 一.添加数据 SQLiteOpenHelper的getReadableDatabase()或getWritableDatabase()方法 ...

  3. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  4. 快递包裹自动化分拣系统_包裹识别系统的类型

    快递包裹自动化分拣系统 包裹识别码的类型 (Types of Parcel identifiers) There are several classes or parcel identificatio ...

  5. go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用

    Go语言是一种跨平台(Mac OS.Windows.Linux 等)的静态编译型语言.拥有媲美C语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几. ...

  6. 【总结】2014年度总结

    2014年度总结 2014年可以分为两个阶段,一阶段时在学校的半年时光,另一阶段是工作的半年光阴.(学校的总结,我就不写在这里) 时间如白驹过隙,半年转眼而过. 我入职到现在已然有了6个月了.6个月是 ...

  7. Python爬虫淘宝基于selenium抓取淘宝商品数据2021年测试过滑动验证

    配置一下"可能需要修改的参数",就可以食用底部代码了,ps:可能已失效 本文章代码功能 准备工作 Python用到的库和准备工作 可能需要修改的参数 在CMD中打开一个Chrome ...

  8. android 入门 006(sqlite增删改查)

    android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite;import android.content.Context; import a ...

  9. SQLite入门之数据类型

    2019独角兽企业重金招聘Python工程师标准>>> SQLite入门之数据类型 2011-05-23 16:47:47  来源:SeaYee 最近在开发一个可以记录日志的程序,要 ...

最新文章

  1. 思谋科技A轮融资超1亿美元 ,成为最年轻“准独角兽”AI企业
  2. 老师学python可以干嘛-python语言可以干什么
  3. Android服务二 创建绑定服务
  4. UIPopoverController的使用
  5. JDBC01 利用JDBC连接数据库【不使用数据库连接池】
  6. Oracle远程连接
  7. android studio for android learning (十) android之activity的启动和关闭
  8. 博弈论学习 | 第六章 Games
  9. Bing的高级搜索关键字
  10. 二进制运算法则、负数的二进制补码表示与进制转换(短除法)
  11. Intellij (IDEA) 学生认证全流程
  12. 串的子串(模式串)匹配算法
  13. js日历核心计算方法
  14. LIMS和TDM比较分析
  15. 最简单的数据备份的方法
  16. 假设为一个大学今年的学费是10000元,而且以每年7%的速度增加。多少年后学费会翻倍?
  17. DDCTF-2019-writeup(7web+5misc)
  18. Python入门 NUMECA计算文件处理(一)
  19. c语言微信昵称大全女生优雅经典的,微信昵称大全女生优雅好听的
  20. (附源码)计算机毕业设计SSM基于Web课堂签到管理系统

热门文章

  1. 打字时光标后面的内容被覆盖,以及github快捷粘贴
  2. 飞凌嵌入式i.MX6Q开发板试用报告
  3. Java--API习题
  4. Matlab中s函数的使用
  5. 如何用 Python 给照片换色
  6. 通过 Docker 搭建 Chevereto 图床
  7. 计算机模拟电子云密度,Intro2ComtSimu.ppt
  8. 已经摆在面前了,该不该上
  9. 阿里云学生云服务器的性能怎么样?
  10. 洛谷·幼儿园篮球题【including范德蒙德卷积,二项式反演