質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

ORM

ORM(オブジェクト関係マッピング)はオブジェクト指向のシステムとリレーショナルデータベースの間でマッピングを行う技術です。

Q&A

0回答

361閲覧

DBから値が取り出せない(golang, GORM)

Akiposs

総合スコア12

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

ORM

ORM(オブジェクト関係マッピング)はオブジェクト指向のシステムとリレーショナルデータベースの間でマッピングを行う技術です。

0グッド

0クリップ

投稿2019/07/05 07:11

編集2019/07/05 07:12

現在Goで簡単な掲示板アプリを作成しているのですが、
DBに保存された値を取り出して、log.Println()で表示させようとした際、
nilになってしまう問題が発生しています。
そちらもteratailに投稿しているのですが、まだ解決していません。

今回はGORMの公式に載っているQuickStartのコードを使えば、logで表示されるのか?
自分の記述が何か間違っているという可能性を排除すべく、そういった試みをしてみました。
結果はnilでした。
log.Prinlnでは内容を参照できないのか?
ではそもそもどうやって取り出せたかどうかを確認するのか?
という所でつまづいています。
以下結果です。
わかる方いらっしゃいましたら、ご指導のほどよろしくお願いいたします。

※この0x~~~って箇所、多分メモリの位置情報ですよね・・・?でもどういう意味なんでしょう・・・
※DBへの保存は成功しています。

参考:
[GORM-QuickStart](http://gorm.io/ja_JP/docs/index.

Result

1takanoakiradainoMacBook-Air:main akihirotakano$ go run main.go 22019/07/05 15:54:47 &{{{0 0} 0 0 0 0} 0xc0001b4300 <nil> 1 0xc0000dc3c0 false 0 {0xc00011bdb0} 0xc0001c4dc0 {{0 0} {{map[gorm:order_by_primary_key:0xc0001b6070] false}} map[] 0} 0xc0000b2680 <nil> 0xc0001b24e0 false <nil>} 32019/07/05 15:54:47 &{{{0 0} 0 0 0 0} 0xc0001b4300 <nil> 1 0xc0000dc3c0 false 0 {0xc00011bdb0} 0xc0001d4580 {{0 0} {{map[gorm:order_by_primary_key:0xc000010090] false}} map[] 0} 0xc0000b2680 <nil> 0xc00000e3a0 false <nil>} 42019/07/05 15:54:47 &{{{0 0} 0 0 0 0} 0xc0001b4300 <nil> 1 0xc0000dc3c0 false 0 {0xc00011bdb0} 0xc0001c5600 {{0 0} {{map[gorm:order_by_primary_key:0xc0001b60d8] false}} map[] 0} 0xc0000b2680 <nil> 0xc0001b26a0 false <nil>} 5

GormQuickStart

1package main 2 3import ( 4 "log" 5 6 "github.com/jinzhu/gorm" 7 _ "github.com/jinzhu/gorm/dialects/mysql" 8) 9 10type Product struct { 11 gorm.Model 12 Code string 13 Price uint 14} 15 16func main() { 17 DBMS := "mysql" 18 USER := "root" 19 PASS := "" 20 DBNAME := "test" 21 LOGOS := "charset=utf8&parseTime=True&loc=Local" 22 23 CONNECT := USER + ":" + PASS + "@/" + DBNAME + "?" + LOGOS 24 db, err := gorm.Open(DBMS, CONNECT) 25 if err != nil { 26 panic("データベースへの接続に失敗しました") 27 } 28 29 // スキーマのマイグレーション 30 db.AutoMigrate(&Product{}) 31 32 // Create 33 db.Create(&Product{Code: "L1212", Price: 1000}) 34 35 // Read 36 var product Product 37 a := db.First(&product, 1) // idが1の製品を探します 38 log.Println(a) 39 b := db.First(&product, "code = ?", "L1212") // codeがL1212の製品を探します 40 log.Println(b) 41 42 // Update - 製品価格を2,000に更新します 43 db.Model(&product).Update("Price", 2000) 44 c := db.First(&product, 1) // idが1の製品を探します 45 log.Println(c) 46 47}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2019/07/05 08:24

前も思ったけど、マニュアル読まないのでしょうか? First()って、そんな使い方してないでしょう? Printlnさせるのは&productの方ですよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問