• gorose使用示例


    package main
    
    import (
    	"fmt"
    	"github.com/gohouse/gorose"         //import Gorose
    	_ "github.com/go-sql-driver/mysql"     //只执行github.com/go-sql-driver/mysql的init函数
    	"errors"
    	"strconv"                    
    )
    
    func main() {
            //mysql数据库配置
    	var DbConfig = map[string]interface{}{
    		// Default database configuration
    		"Default": "mysql_dev",
    		// (Connection pool) Max open connections, default value 0 means unlimit.
    		"SetMaxOpenConns": 0,
    		// (Connection pool) Max idle connections, default value is 1.
    		"SetMaxIdleConns": 10,
    
    		// Define the database configuration character "mysql_dev".
    		"Connections": map[string]map[string]string{
    			"mysql_dev": {// 定义名为 mysql_dev 的数据库配置
    				"host": "192.168.2.179",       // 数据库地址
    				"username": "a",         // 数据库用户名
    				"password": "b@", // 数据库密码
    				"port": "3306",                // 端口
    				"database": "a",      // 链接的数据库名字
    				"charset": "utf8",             // 字符集
    				"protocol": "tcp",             // 链接协议
    				"prefix": "",                  // 表前缀
    				"driver": "mysql",             // 数据库驱动(mysql,sqlite,postgres,oracle,mssql)
    			},
    		},
    	}
    
    	db, err := gorose.Open(DbConfig)
    	if err != nil {
    		panic(err.Error())
    	}
    	defer db.Close()            //延迟关闭
            
            // 简单查询
    	res, err := db.Query("select * from users;")
    	fmt.Println(res)
                
            // 条件查询
    	res, err = db.Query("select * from users where userid=?",1)
    	fmt.Println(res)
    
            //简单链式查询
    	fmt.Println(db.Table("users").First())
    
            //带条件的链式查询
    	fmt.Println(db.Table("users").Fields("userid as id ,username as name").Where("userid", "=", 3).Get())
            
            //带别名的查询
            res, err := db.Table("users").Fields("userid as ID,username as Name").Get()
    
            // 查询结果转成json
    	res,err = db.Table("users").Fields("userid as id ,username as name").Where("userid", "=", 3).Get()
    	jsonStr := db.JsonEncode(res)
    	fmt.Println(jsonStr)
    
    	//开启事务,参数是一个匿名函数
    	db.Transaction(func() error {
                    // 链式插入数据
    		res1 ,err1 := db.Table("version").Data(map[string]interface{}{"MainVersion":1,"SubVersion":2}).Insert(true)
    		if err1 != nil {
    			return err1
    		}
    		if res1 == 0 {
    			return errors.New("Insert failed")
    		}
    
                    //链式 更新数据
    		res1,err1 = db.Table("scene").Data(map[string]interface{}{"modelname":"model003"}).Where("id",10).Update()
    		if err1 != nil {
    			return err1
    		}
    		if res1 == 0 {
    			return errors.New("Update failed")
    		}
    		return nil
    	})
    
            // 事务结束
    }
    
  • 相关阅读:
    hdu 1151
    DAG的最小路径覆盖和二分图的最大匹配
    二部图 最小点覆盖集与最大匹配的关系
    sdut 2151
    sdut Emergency
    作业
    Node.prototype.contains
    微博登录
    markdown
    Object.observe
  • 原文地址:https://www.cnblogs.com/qianlicao/p/8520561.html
Copyright © 2020-2023  润新知