XORM入门,使用SQLite

本文介绍了如何在Golang项目中使用XORM库与SQLite数据库配合,包括安装、配置、创建数据库和表、执行SQL操作,以及使用xorm进行CRUD操作的详细步骤。通过实例演示了创建表、插入数据和查询结果的过程,并解决了gcc依赖问题。

前言

我们在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 dao

import (
	"fmt"

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

var (
	Engine *xorm.Engine
)

func init() {
	var err error
	Engine, 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值