使用go语言操作db2
2017-12-02 22:22
435 查看
操作系统 : CentOS7.3.1611_x64
go语言版本:1.8.3 linux/amd64
db2版本: db2_v101_linuxx64_expc
https://github.com/golang/go/wiki/SQLDrivers
下载源码,并将源码放到如下路径:
/usr/local/go/src/bitbucket.org/phiggins/go-db2-cli
这里直接使用bitbucket提供的示例代码 (db2test.go):
build.sh :
run.sh :
好,就这些了,希望对你有帮助。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20171202_使用go语言操作db2.rst
欢迎补充
go语言版本:1.8.3 linux/amd64
db2版本: db2_v101_linuxx64_expc
问题描述
怎么使用go语言在CentOS环境下操作db2数据库?解决方案
go语言操作数据库相关信息可以参考如下链接:https://github.com/golang/go/wiki/SQLDrivers
使用db2cli
db2cli地址: https://bitbucket.org/phiggins/go-db2-cli/src下载源码,并将源码放到如下路径:
/usr/local/go/src/bitbucket.org/phiggins/go-db2-cli
[root@localhost go-db2-cli]# pwd /usr/local/go/src/bitbucket.org/phiggins/go-db2-cli [root@localhost go-db2-cli]# ls LICENSE mgodbc.go README.md [root@localhost go-db2-cli]#
这里直接使用bitbucket提供的示例代码 (db2test.go):
package main // E-Mail : Mike_Zhang@live.com import ( _ "bitbucket.org/phiggins/go-db2-cli" "database/sql" "flag" "fmt" "os" "time" ) var ( connStr = flag.String("conn", "", "connection string to use") repeat = flag.Uint("repeat", 1, "number of times to repeat query") ) func usage() { fmt.Fprintf(os.Stderr, `usage: %s [options] %s connects to DB2 and executes a simple SQL statement a configurable number of times. Here is a sample connection string: DATABASE=MYDBNAME; HOSTNAME=localhost; PORT=60000; PROTOCOL=TCPIP; UID=username; PWD=password; `, os.Args[0], os.Args[0]) flag.PrintDefaults() os.Exit(1) } func execQuery(st *sql.Stmt) error { rows, err := st.Query() if err != nil { return err } defer rows.Close() for rows.Next() { var t time.Time err = rows.Scan(&t) if err != nil { return err } fmt.Printf("Time: %v\n", t) } return rows.Err() } func dbOperations() error { db, err := sql.Open("db2-cli", *connStr) if err != nil { return err } defer db.Close() st, err := db.Prepare("select current timestamp from sysibm.sysdummy1") if err != nil { return err } defer st.Close() for i := 0; i < int(*repeat); i++ { err = execQuery(st) if err != nil { return err } } return nil } func main() { flag.Usage = usage flag.Parse() if *connStr == "" { fmt.Fprintln(os.Stderr, "-conn is required") flag.Usage() } if err := dbOperations(); err != nil { fmt.Fprintln(os.Stderr, err) } }
[root@localhost db2Test]# ls build.sh db2Test.go run.sh [root@localhost db2Test]# ./build.sh [root@localhost db2Test]# ./run.sh Time: 2017-09-25 22:41:21.701142 +0000 UTC [root@localhost db2Test]#
build.sh :
#!/bin/bash DB2HOME=/home/db2inst1/sqllib export CGO_LDFLAGS=-L$DB2HOME/lib export CGO_CFLAGS=-I$DB2HOME/include go build db2Test.go
run.sh :
#! /bin/bash DB2HOME=/home/db2inst1/sqllib export LD_LIBRARY_PATH=$DB2HOME/lib ./db2Test -conn 'DATABASE=testdb; HOSTNAME=127.0.0.1; PORT=50000; PROTOCOL=TCPIP; UID=db2inst1; PWD=123456;'
好,就这些了,希望对你有帮助。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20171202_使用go语言操作db2.rst
欢迎补充
相关文章推荐
- 使用PHP操作DB2 Express C的五种方法(1)
- golang学习之旅:使用go语言操作mysql数据库
- golang学习之旅:使用go语言操作mysql数据库(自己测试了)
- db2 select中使用case替代行转列操作
- golang学习之旅:使用go语言操作mysql数据库
- 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
- 使用Block对POST异步操作的简单封装,NSURLConnection
- django arya插件对数据库操作使用,reverse发娘解析url的使用
- 使用JDBC操作MySql进行增删改查学生信息。
- 【Composer】实战操作一:使用库
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的主/从报表
- 使用 jsoup 对 HTML 文档进行解析和操作
- HBase Java API使用操作例子
- GitHub版本控制使用(命令行实际操作图解Git使用方法)
- JSP中使用AJAX示例:分别将结果提交为STRUTS,SERVLET,WEBWORK的不同操作方式
- JavaScript使用math.js进行精确计算操作示例
- 串口操作使用初步
- java使用jxl简单操作Excel
- VC++之使用CFile类操作文件