* main.Userでgolang SQLX errが欠落している先名ID

SQLX発生したエラーメッセージを使用して、データベース、データベースクエリのデータベースのgolang操作を使用するように学習の過程で

ソースとして、次のとおりです。

package main

import (
	"database/sql"
	"fmt"

	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)

var DB *sqlx.DB

func initDb() error {
	var err error
	dsn := "root:123456@tcp(127.0.0.1:3306)/golang"
	DB, err = sqlx.Open("mysql", dsn)
	if err != nil {
		return err
	}
	DB.SetMaxOpenConns(100)
	DB.SetMaxIdleConns(16)
	return nil
}

type User struct {
	Id   int64          `db:id`
	Name sql.NullString `db:name`
	Age  int            `db:age`
}

func testSqlxQuery() {
	sqlstr := "select id,name,age from user where id=?"
	var user User

	err := DB.Get(&user, sqlstr, 3)
	if err != nil {
		fmt.Printf("select failed, err:%v\n", err)
		return
	}

	fmt.Printf("user:%#v\n", user)
}

func main() {
	err := initDb()
	if err != nil {
		fmt.Printf("init db failed, err:%v\n", err)
		return
	}
	testSqlxQuery()
}

外出先でビルドした後、エラーを実行します。

* main.Userで行方不明の宛先名ID

比較することで、データベース問題はないが、SQLXエラーの使用は、オブジェクトが構造体の定義であることが判明したクエリのSQLデータベースを使用して、タグのタグは、二重引用符にはならない、問題後の引用符が解消されます。

type User struct {
	Id   int64          `db:"id"`
	Name sql.NullString `db:"name"`
	Age  int            `db:"age"`
}

このような問題のために、このような低レベルのエラーを回避するために、二重引用符の増加を覚えタグ使用の使用に特別な注意を払う必要があります。

公開された66元の記事 ウォンの賞賛8 ビュー14万+

おすすめ

転載: blog.csdn.net/gnufre/article/details/104022584