golang 数据库 空字段 问题
程序员文章站
2022-06-25 10:02:34
...
代码:
package main
import (
_ "github.com/go-sql-driver/mysql"
"fmt"
"database/sql"
)
func main() {
d13()
fmt.Println("--------------------------")
d14()
}
func d13(){
var err error
connect := "f:aaa@qq.com(192.168.1.0:3306)/lr1"
db, err := sql.Open("mysql", connect)
if err != nil{
fmt.Println("connect mysql failed, address = " + connect, err)
} else{
sqlContent := "select real_nm, sex, birth, ext from member where tenant=? and mem_id=?"
rows, err := db.Query(sqlContent, "ST", "2017")
if err != nil{
fmt.Println(err)
} else{
for rows.Next() {
var nm string
var sex string
var birth string
var ext string
err := rows.Scan(&nm, &sex,&birth, &ext) // birth字段在数据库中是空字段
if err != nil{
fmt.Println("d11 error. ", err)
}
fmt.Println(nm)
fmt.Println(sex)
fmt.Println(birth)
fmt.Println(ext)
}
}
}
}
func d14(){
var err error
connect := "f:aaa@qq.com(192.168.1.0:3306)/lr1"
db, err := sql.Open("mysql", connect)
if err != nil{
fmt.Println("connect mysql failed, address = " + connect, err)
} else{
sqlContent := "select real_nm, sex, birth, ext from member where tenant=? and mem_id=?"
rows, err := db.Query(sqlContent, "ST", "2017")
if err != nil{
fmt.Println(err)
} else{
for rows.Next() {
nm := sql.NullString{String:"", Valid:false}
sex := sql.NullString{String:"", Valid:false}
birth := sql.NullString{String:"", Valid:false}
ext := sql.NullString{String:"", Valid:false}
err := rows.Scan(&nm, &sex,&birth, &ext) // birth字段在数据库中是空字段
if err != nil{
fmt.Println("d12 error. ", err)
}
fmt.Println(nm.String)
fmt.Println(sex.String)
fmt.Println(birth.String)
fmt.Println(ext.String)
}
}
}
}
运行结果截图:
因为数据库的birth字段为空,所以它在给golang的string对象birth赋值时,出错了(golang的 string不能等于nil)所以后续的数据库的ext就没有再赋值给golang的ext对象了, 而是返回error对象
参考路径:
Go语言:解决数据库中null值的问题
上一篇: 循环语句
下一篇: PostgreSQL
推荐阅读
-
解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
-
Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)
-
解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
-
Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)
-
C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
-
C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
-
php使用sql数据库 获取字段问题介绍
-
golang中使用proto3协议导致的空值字段不显示的问题处理方案
-
Oracle Sql修改数据库表中的一个字段可为空 OracleSQL
-
Oracle Sql修改数据库表中的一个字段可为空 OracleSQL