facebook twitter hatena line email

「Unity/sqlite」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(内容を「unity/sqlite/SQLiteUnityKit」で置換)
 
(同じ利用者による、間の2版が非表示)
行1: 行1:
==sqlliteライブラリ本体DL==
+
[[unity/sqlite/SQLiteUnityKit]]
git clone https://github.com/Busta117/SQLiteUnityKit.git
+
 
+
==SQLiteUnityKitの問題点==
+
 
+
*マルチバイト文字列を扱えない
+
*アプリの更新時に端末内のDBが初期化される
+
*トランザクション管理ができない
+
*SQLにバインド処理を行えない
+
 
+
参考:https://fantastic-works.com/archives/406
+
 
+
==プロジェクト内にsqlliteライブラリ設置==
+
Sqliteを入れたいUnityプロジェクトのAssetsの下で実行
+
 
+
SqlProjectをプロジェクトの例として行く。
+
 
+
mkdir -p SqlProject/Assets/Plugin/Android/
+
mkdir -p SqlProject/Assets/Script/
+
mv SQLiteUnityKit/libsqlite3.so SqlProject/Assets/Plugin/Android/
+
mv SQLiteUnityKit/SqliteDatabase.cs SqlProject/Assets/Script/
+
mv SQLiteUnityKit/README.md SqlProject/Assets/SqlREADME.md
+
mv SQLiteUnityKit/DataTable.cs SqlProject/Assets/Script/
+
 
+
==DBようディレクトリをプロジェクト内に設置==
+
mkdir SqlProject/Assets/StreamingAssets
+
 
+
この名前にしておくとエンコードなどされなくなる。
+
 
+
==dbファイル作成==
+
cd SqlProject/Assets/StreamingAssets
+
sqlite3 config.db
+
create table users(id integer, name text, age integer);
+
.exit
+
 
+
==dbへアクセス==
+
User.cs
+
<pre>
+
using UnityEngine;
+
using System.Collections;
+
public class User {
+
    // Use this for initialization
+
    public void Insert() {
+
        // Insert
+
        SqliteDatabase sqlDB = new SqliteDatabase("config.db");
+
        string query = "insert into users values(1, 'taro', 25)";
+
        sqlDB.ExecuteNonQuery(query);
+
    }
+
    public void FindAll() {
+
        SqliteDatabase sqlDB = new SqliteDatabase("sample.db");
+
        // Select
+
        string selectQuery = "select * from users";
+
        DataTable dataTable = sqlDB.ExecuteQuery(selectQuery);
+
        foreach(DataRow dr in dataTable.Rows){
+
            Debug.Log("id:" + dr["id"].ToString());
+
            Debug.Log("name:" + (string)dr["name"]);
+
            Debug.Log("age:" + dr["age"].ToString());
+
        }
+
    }
+
}
+
</pre>
+
 
+
Main.cs
+
<pre>
+
User user = new User();
+
user.Insert();
+
user.FindAll();
+
</pre>
+
 
+
==参考==
+
UnityでSQLiteを扱う方法
+
https://qiita.com/hiroyuki7/items/5335e391c9ed397aee50
+
 
+
==参考==
+
https://qiita.com/hiroyuki7/items/5335e391c9ed397aee50
+

2019年2月28日 (木) 02:45時点における最新版

unity/sqlite/SQLiteUnityKit