go iris xorm包使用(sqlite3数据库增删查改)

官网https://studyiris.com/example/orm/xorm.html例子,稍做修改

1、我是win64,但没有遇到mingw问题,应该是之前安装过gcc环境,参考:测试一下robotgo自动化操作,顺便解决了原来的mingw版本中只有gcc,没有g++的问题

2、将其中的字段名、字段内容改为中文,并按id访问数据表中的行,没遇到乱码问题,很好。

代码如下:

//包主显示如何在您的Web应用程序中使用orm
//它只是插入一列并选择第一列。
package main

import (
    "time"

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

/*
   go get -u github.com/mattn/go-sqlite3
   go get -u github.com/go-xorm/xorm
   如果您使用的是win64并且无法安装go-sqlite3:
       1.下载:https://sourceforge.net/projects/mingw-w64/files/latest/download
       2.选择“x86_x64”和“posix”
       3.添加C:\Program Files\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev1\mingw64\bin
       到你的PATH env变量。
   手册: http://xorm.io/docs/
*/
//User是我们的用户表结构。
type User struct {
    ID        int64  // xorm默认自动递增
    Version   string `xorm:"varchar(200)"`
    Salt      string
    A用户名      string
    Password  string    `xorm:"varchar(200)"`
    Languages string    `xorm:"varchar(200)"`
    CreatedAt time.Time `xorm:"created"`
    UpdatedAt time.Time `xorm:"updated"`
}

func main() {
    app := iris.New()
    orm, err := xorm.NewEngine("sqlite3", "./test.db")
    if err != nil {
        app.Logger().Fatalf("orm failed to initialized: %v", err)
    }
    iris.RegisterOnInterrupt(func() {
        orm.Close()
    })
    err = orm.Sync2(new(User))
    if err != nil {
        app.Logger().Fatalf("orm failed to initialized User table: %v", err)
    }
    app.Get("/insert", func(ctx iris.Context) {
        user := &User{A用户名: "大大", Salt: "hash---", Password: "hashed", CreatedAt: time.Now(), UpdatedAt: time.Now()}
        orm.Insert(user)
        ctx.Writef("user inserted: %#v", user)
    })
    app.Get("/get/{id:int}", func(ctx iris.Context) {
        id, _ := ctx.Params().GetInt("id")
        //int到int64
        id64 := int64(id)
        ctx.Writef("id is %#v", id64)
        user := User{ID: id64}
        if ok, _ := orm.Get(&user); ok {
            ctx.Writef("user found: %#v", user)
        }
    })
    app.Get("/delete", func(ctx iris.Context) {
        user := User{ID: 1}
        orm.Delete(user)
        ctx.Writef("user delete: %#v", user)
    })
    app.Get("/update", func(ctx iris.Context) {
        user := User{ID: 2, A用户名: "小小"}
        orm.Update(user)
        ctx.Writef("user update: %#v", user)
    })
    // http://localhost:8080/insert
    // http://localhost:8080/get/数字
    app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
}

增:先访问2次:http://localhost:8080/insert

查:http://localhost:8080/get/1 和 http://localhost:8080/get/2

删:http://localhost:8080/delete

改:http://localhost:8080/update

原文地址:https://www.cnblogs.com/pu369/p/10797723.html

时间: 2024-08-03 19:57:03

go iris xorm包使用(sqlite3数据库增删查改)的相关文章

YII数据库增删查改操作

初学YII, 整理了一些YII数据库的相关操作,  共同学习,共同进步. 一.查询数据集合 1 //1.该方法是根据一个条件查询一个集合 2 $admin=Admin::model()->findAll($condition,$params); 3 $admin=Admin::model()->findAll("username=:name",array(":name"=>$username)); 4 5 //2. findAllByPk(该方法是

Sqlite数据库增删查改操作

1.SqliteOpenHelper为数据库抽象类,需创建一个类继承他,其中有onCreate创建数据库的抽象方法和onUpgrade升级数据库方法(一般用不上). 1 //创建数据库的类 2 //SQLiteOpenHelper抽象类 onCreate和onUpgrade抽象方法 3 public class MySqliteHelper extends SQLiteOpenHelper { 4 5 //新建数据库以及表 6 private String SqlCpData="create t

django models进行数据库增删查改

引入models的定义 from app.models import  myclass class  myclass(): aa =  models. CharField (max_length=None) bb =  models. CharField (max_length=None) def __unicode__(self): return u'%s %s' %(aa,bb) 增 添加一行数据1 add = myclass(aa='wahaha',bb='hahawa' ) add.sa

laravel 数据库 - 增删查改

//查询public function select(){ /** 数据表 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `sex` varchar(255) DEFAULT '1', `create_at` int(11) DEFAULT '0', `score` int(3) DEFAULT

数据库那些事--greenDAO增删查改

转载请注明出处:王亟亟的大牛之路 话不多说先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android 一直在加新东西,你值得拥有 这几天忙的1B,这里跑那里跑,写的Demo就是没时间发帖,昨天10来点到家然后 弄鱼 弄麦麦啥的再敲敲代码就1点了,早上起来困的1B.... OK,先来说下为什么写这篇文章. 上周面试,一个面试官问了一堆,答得还不错,然后聊到数据库,我说我之前用sql直接写,然后他一脸闷B说了句好吧...然后我应该去学个第

C# SQLite 创建数据库的方法增删查改语法和命令

SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页:http://www.sqlite.org/index.html   cmd下sqlite的使用网 1:选择下载对应自己系统的sqlite.3exe文件 2:解压后使用cmd命令进入sqlite3.exe文件所在的路径执行命令就可以操作做相应的操作. 在进入数据库之后如果需要退出的话windows

用VC++操作ACESS数据库(创建数据库、建立新表、连接、增删查改)

转载http://liheng19870711.blog.163.com/blog/static/8716802201121724528232/进行修改 用VC++操作ACESS数据库(创建数据库.建立新表.连接.增删查改) 首先在StdAfx.h中包含如下头文件#import "C:\Program Files\Common Files\system\ado\msadox.dll"  // 创建数据库必用#import"C:\Program Files\Common Fil

MongoDB数据库进阶 --- 增删查改...

在之前的文章中,我已经介绍了什么事MongoDB以及怎么在windows下安装MongoDB等等基本知识. 所以这篇进阶的博客就主要介绍以下如何进行数据库的基本操作 --- 增删查改. 数据库相关 显示所有数据库: show dbs 其中admin和local都是默认存在的数据库. 查看当前数据库: db 即当前默认就是test数据库,但是为什么在 show dbs 的时候没有呢?  这是因为test数据库中没有任何数据,所以不会显示,后面会介绍插入数据,插入数据后就会显示了. 创建数据库: u

Java数据库编程之JDBC增删查改

前言 众多的ORM框架使我们从原生的JDBC编码摆脱出来,但在学习数据库编程之初,应该先掌握底层的JDBC编程,熟练应用后,学起框架才会更得心应手.就像金庸笔下的武侠人物,只要内功深厚,再去学习其他武功绝学,只不过是招式罢了.正所谓,温故而知新,本文回顾了最基础的JDBC增删查改操作. 连接数据库 在之前一篇随笔讲过如何连接数据库——<Java数据库编程之JDBC配置>. 数据库连接工具类 DBConnection package database; import java.sql.*; im