1. HOME
  2. ブログ
  3. IT技術
  4. 【第9回】Go言語(Golang)入門~ObjectBox導入編~

【第9回】Go言語(Golang)入門~ObjectBox導入編~

第9回~Go言語(Golang)入門~

秋山笹川先生

(株)ライトコードの笹川(ささがわ)です!

前回は、Goの環境やパッケージ管理を見直していきました。

今回は、GreenRobot ObjectBoxというデータベースを導入してみます!

それでは、いってみましょう!

前回の記事はこちら

こちらの記事もオススメ!

ObjectBoxとは

ObjectBox とは、GreenRobot のデータベースになります。

GreenRobot は、ネイティブモバイルアプリケーションのライブラリで、馴染みがある人も多いのではないでしょうか?

ObjextBox 自体は、笹川の個人開発アプリでも利用経験があり、他のメジャーな DB と比較しても扱いやすい印象を受けたので愛用しています。

前回導入した、Firestore と同様で、NoSQL のデータベースとなります。

Firestore では、Firebaseへの認証が必要でした。

しかし、ObjectBox はローカルに置かれるデータベースになりますので、認証の手間が減るのは嬉しいですね。

ObjectBoxを導入してみよう!

それでは、以下のドキュメントを参考に進めていきましょう!

【ドキュメント】
https://golang.objectbox.io/

ObjectBoxのimportを追加

ドキュメント通りに ObjectBox の import  を追加します。

Go Modules が入っていれば、そのまま main.go を実行することでライブラリを導入されます。

導入した ObjectBox のバージョンが無事に出力されました!

データを追加してみよう!

まずは、データを追加するためのテーブルを定義します。

modelディレクトリを作成し、その中に task.go を作成します。

3行目の gogen  の設定を入れておかないと、この先詰まりますので必ず入れてください。

go generateコマンドを実行

go generate  コマンドを実行します。

これで、Taskテーブルの設定は完了しました。

データベースの接続からデータの追加までの記述

次に、データベースの接続からデータの追加までを main.go へ記述します。

これで実行し、エラーが出なければ、データ追加は成功です。

デバッグログ

デバッグログは出ましたが、エラーログは出なかったようです。

データの読み取り

データを読み取ってみましょう。

デバッグログをgrepで除外

デバッグログがあると結果が見えづらいので、 grep  で除外して実行します。

最初に追加した1件のみ、あることを確認できました!

データを更新してみよう!

追加したデータの Text の内容を更新します。

実行

それでは、実行してみましょう。

データの更新に成功しました!

データを削除してみよう!

今回は、IDを指定し、削除してみようと思います。

現在、保存されているデータのIDは「1」なので、「1」を指定します。

ログ出力

ログで確認するために、レコードの数をログ出力させます。

問題なく削除できたようです!

データを検索してみよう!

データを複数個追加し、データを1個だけ抽出するようにしてみます。

ログ出力

これで実行すると、タスクが10個追加され、Text がタスク5のものだけ、IDなどをログ出力します。

検索も簡単にできました!

第10回へつづく!

今回は、ObjectBoxの導入と、データの操作についてやってみました。

軽量高速のObjectBoxは、モバイル向けとして開発されましたが、今では様々な言語でも利用できるようになってきています。

この機会に皆様も触ってみてはいかがでしょうか!

なお、今回作成したgoファイルは、こちらのリポジトリにて管理しています。

Go言語でのシステム開発依頼・お見積もりはこちらまでお願いします。
また、Go言語を扱えるエンジニアを積極採用中です!詳しくはこちらをご覧ください。

次回の記事はこちら

オススメのGo入門本

Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る

 

こちらの記事もオススメ!

第1回の記事はこちら

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア