gorose使用示例

时间:2022-05-01 01:57:14
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
}) // 事务结束
}

gorose使用示例的更多相关文章

  1. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  2. .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1

    微软今天在 Connect(); // 2016 上发布了 .NET Core 1.1 ,ASP.NET Core 1.1 以及 Entity Framework Core 1.1.紧跟这次发布,我们 ...

  3. 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

    ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...

  4. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  5. JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

  6. XAMARIN ANDROID 二维码扫描示例

    现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile  做一个简单的 Android 条码扫描示 ...

  7. iOS之ProtocolBuffer搭建和示例demo

    这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题! 搭建pb编译器到时没有什么问题,只是在把*.pro ...

  8. Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)

    示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...

  9. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

随机推荐

  1. MVC Core 网站开发(Ninesky) 2.1、栏目的前台显示(补充)

    在2.1.栏目的前台显示中因右键没有添加视图把微软给鄙视了一下,后来有仔细研究了一下发现应该鄙视自己,其实这个功能是有的,是自己没搞清楚乱吐糟. 其实只要在NuGet中安装两个包(Microsoft. ...

  2. Node.js:console模块

    console模块提供了一个简单的调试功能,类似与web浏览器的javscript console. 下面简单介绍下该模块的使用以及用途,我使用了ES6的模版字符串(使用反引号标识),有兴趣的可以去了 ...

  3. 将.dat文件导入数据库

    *最近在搞文本分类,就是把一批文章分成[军事].[娱乐].[政治]等等. 但是这个先需要一些样本进行训练,感觉文本分类和"按图索骥"差不多,训练的文章样本就是"图&quo ...

  4. Cheatsheet: 2014 12.01 ~ 12.31

    .NET Some Thoughts on the new .Net Introducing .NET Core Running ASP.NET on a Raspberry Pi with Mono ...

  5. OSG 实现跟随节点的相机(转)

      本章教程将继续使用回调和节点路径(NodePath)来检索节点的世界坐标. 本章目标: 在一个典型的仿真过程中,用户可能需要从场景中的各种车辆和人物里选择一个进行跟随.本章将介绍一种将摄像机“依附 ...

  6. MFC界面相关(彩色工具栏)

    MFC工具栏控件 创建工具栏步骤: (1)在Resource View中插入新toolbar (2)在toolbar上双击增加按钮,更改ID为ID_BUTTON,编译后在resource.h中即可看到 ...

  7. Asp.Net Core WebAPI入门整理(四)参数获取

    一.总结整理,本实例对应.Net Core 2.0版本 1.在.Net Core WebAPI 中对于参数的获取及自动赋值,沿用了Asp.Net  MVC的有点,既可以单个指定多个参数,右可以指定Mo ...

  8. 去掉WIN7 桌面图标的小箭头

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons&quot ...

  9. 让div水平垂直居中的几种方法

    最近,公司招了一批新人,吃饭的时候恰好碰到一个新同事,就跟他聊了起来.听他说了主管面试的时候出的一些问题,其中一个问题我印象特别深刻,因为,我当年进来的时候,也被问到这个问题.虽然这个问题已经问烂了, ...

  10. 11-Json文件配置

    1-新建json文件, 设置json文件生成的方式 { "ClassNo": "1", "ClassDesc": "Asp.net ...