func main ( ) { db , _ : = sql . Open ( "mysql" , "root:123@/xty" ) rows , _ : = db . Query ( "select category,tags from book where id=?" , 2 ) columnTypes , _ : = rows . ColumnTypes ( ) //根据列分类 存储进一个[]ColumnTypes中 str1 : = columnTypes [ 0 ] . DatabaseTypeName ( ) //第一列在数据库对应的数据类型 name1 : = columnTypes [ 0 ] . Name ( ) //第一列的名称 str2 : = columnTypes [ 1 ] . DatabaseTypeName ( ) //第二列在数据库对应的数据类型 name2 : = columnTypes [ 1 ] . Name ( ) //第二列的名称 fmt . Println ( str1 , str2 ) fmt . Println ( name1 , name2 ) type1 : = columnTypes [ 0 ] . ScanType ( ) //在go中所对应的类型 type2 : = columnTypes [ 1 ] . ScanType ( ) fmt . Println ( type1 , type2 ) var book Book var ( //使用sql.RawBytes来接收数据库中查询出来的json数据 category sql . RawBytes tags sql . RawBytes for rows . Next ( ) { rows . Scan ( & category , & tags ) json . Unmarshal ( category , & book . category ) json . Unmarshal ( tags , & book . tags ) fmt . Println ( book ) c : = Category { Id : 9 , Name : "sword coming" } t : = [ ] int { 1 , 2 , 3 , 4 , 5 , 6 , 7 } c2j , err : = json . Marshal ( c ) t2j , err : = json . Marshal ( t ) res , err : = db . Exec ( "insert into book(id,category,tags) values(?,?,?)" , 4 , c2j , t2j ) if err != nil { panic ( err ) fmt . Println ( res . LastInsertId ( ) )
JSON JSON
category tags
sql.RawBytes sql.RawBytes
{0 {2 walk in the daynight} [4 5 6]}
4 <nil>
                    程序package mainimport (	"database/sql"	"encoding/json"	"fmt"	_ "github.com/go-sql-driver/mysql")type Book struct {	id       int	category Category	tags     []int}type Category struct {...
jsongolang结构 mysqlgolang结构
有什么功能吗?
      r . GET ( "/base64" , contoller . Base64 , middleware . UsageCount )
	r . GET ( "/image2base64" , contoller . Image2Base64 , middleware . UsageCount )
	r . GET ( "/tinyimg" , contoller . TinyImage , middleware . UsageCount )
	r . GET ( "/hash" , contoller . Hash , middleware . UsageCount )
	r . GET ( "/file-hash"
				
本文实例讲述了golang实现sql结果集以json格式输出的方法。分享给大家供大家参考,具体如下: 代码如下:func getJSON(sqlString string) (string, error) {     stmt, err := db.Prepare(sqlString)     if err != nil {         return nil, err     defer stmt.Close()     rows, err := stmt.Query()     if err != nil {         return nil, err 最近在做elasticsearch相关的开发,有这么一个需求,需要将mysql指定表的数据导入到elasticsearch的索引中,这个需求似乎比较容易,大致思路就是从遍历表中的每一行数据,转换成json,然后通过es的api接口提交到es中。 这个似乎是一个比较简单需求,只是有一点这是一个通用的操作,程序不需要关心遥操作的是什...
需求和思路 在一般的小项目或者一个小软件,例如客户端之类的小程序中,可能会需要数据的持久化.但是使用一般的数据库(Mysql)之类的不合适.使用sqlite3这种嵌入式的是个较好的方法,但是Go语言中sqlite3的库是C语言的,Cgo不支持跨平台编译.正是由于这种需求,才想到使用json格式将数据直接保存在文件中. 具体的思路是怎么样呢? 在Go语言中如果要将数据转化成json格式的话,有两种格式 struct 和 map. 如果同时需要增删查改功能的话,将map作为中间格式是比较合适的.接下来我们就来实现它. 这种操作的实现比较简单,直接将文件中的数据读取出来,使用json
首先,你需要连接到 MySQL 数据库,可以使用 Go 语言标准库中的 `database/sql` 包来连接数据库。然后,可以使用 MySQL 的 binlog 来监听数据库的变化。这可以通过使用 Go 语言的 MySQL 驱动来实现,例如 `go-mysql-driver` 包。 具体来说,你可以使用 `SHOW BINARY LOGS` 命令查询 MySQL 服务器上的 binlog 文件列表。然后,可以使用 `START SLAVE` 命令启动 MySQL 复制,并使用 `SHOW SLAVE STATUS` 命令查询复制的状态。这样就可以监听到 MySQL 数据库的变化了。 需要注意的是,这种方法只能监听到数据库的 DML(数据操纵语言)操作,例如 INSERT、UPDATE 和 DELETE,不能监听到 DDL(数据定义语言)操作,例如 CREATE TABLE 和 ALTER TABLE。