|
|
行1: |
行1: |
− | ==sqlliteライブラリ本体DL==
| + | [[unity/sqlite/SQLiteUnityKit]] |
− | git clone https://github.com/Busta117/SQLiteUnityKit.git
| + | |
− | | + | |
− | ==SQLiteUnityKitの問題点と対応策==
| + | |
− | | + | |
− | *マルチバイト文字列を扱えない
| + | |
− | *アプリの更新時に端末内のDBが初期化される
| + | |
− | *トランザクション管理ができない
| + | |
− | *SQLにバインド処理を行えない
| + | |
− | | + | |
− | 参考:https://fantastic-works.com/archives/406
| + | |
− | | + | |
− | 参考:https://taiyoproject.com/post-482
| + | |
− | | + | |
− | ==プロジェクト内に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
| + | |