XORM入门,使用SQLite
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相关推荐
- 大数据入门(SQLite手机本地轻量级数据库增删改查)
SQLite手机本地轻量级数据库 数据库分为: 1.关系型数据库(mysql主外键属于关系型) 2.对象型数据库(oracle) 3.嵌入式数据库 案例: 安卓控件(5个Button)访问Activi ...
- Android入门(十一)SQLite CURD
原文链接:http://www.orlion.ga/594/ 一.添加数据 SQLiteOpenHelper的getReadableDatabase()或getWritableDatabase()方法 ...
- Android入门(十二)SQLite事务、升级数据库
原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...
- 快递包裹自动化分拣系统_包裹识别系统的类型
快递包裹自动化分拣系统 包裹识别码的类型 (Types of Parcel identifiers) There are several classes or parcel identificatio ...
- go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用
Go语言是一种跨平台(Mac OS.Windows.Linux 等)的静态编译型语言.拥有媲美C语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几. ...
- 【总结】2014年度总结
2014年度总结 2014年可以分为两个阶段,一阶段时在学校的半年时光,另一阶段是工作的半年光阴.(学校的总结,我就不写在这里) 时间如白驹过隙,半年转眼而过. 我入职到现在已然有了6个月了.6个月是 ...
- Python爬虫淘宝基于selenium抓取淘宝商品数据2021年测试过滑动验证
配置一下"可能需要修改的参数",就可以食用底部代码了,ps:可能已失效 本文章代码功能 准备工作 Python用到的库和准备工作 可能需要修改的参数 在CMD中打开一个Chrome ...
- android 入门 006(sqlite增删改查)
android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite;import android.content.Context; import a ...
- SQLite入门之数据类型
2019独角兽企业重金招聘Python工程师标准>>> SQLite入门之数据类型 2011-05-23 16:47:47 来源:SeaYee 最近在开发一个可以记录日志的程序,要 ...
最新文章
- 思谋科技A轮融资超1亿美元 ,成为最年轻“准独角兽”AI企业
- 老师学python可以干嘛-python语言可以干什么
- Android服务二 创建绑定服务
- UIPopoverController的使用
- JDBC01 利用JDBC连接数据库【不使用数据库连接池】
- Oracle远程连接
- android studio for android learning (十) android之activity的启动和关闭
- 博弈论学习 | 第六章 Games
- Bing的高级搜索关键字
- 二进制运算法则、负数的二进制补码表示与进制转换(短除法)
- Intellij (IDEA) 学生认证全流程
- 串的子串(模式串)匹配算法
- js日历核心计算方法
- LIMS和TDM比较分析
- 最简单的数据备份的方法
- 假设为一个大学今年的学费是10000元,而且以每年7%的速度增加。多少年后学费会翻倍?
- DDCTF-2019-writeup(7web+5misc)
- Python入门 NUMECA计算文件处理(一)
- c语言微信昵称大全女生优雅经典的,微信昵称大全女生优雅好听的
- (附源码)计算机毕业设计SSM基于Web课堂签到管理系统