|
|
| 行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
| + | |