Alloyãç¨ããã¨modelã¨å¼ã°ããä»çµã¿ãããã®ã§、楽ã«ã§ãã¾ã.
ã¾ãã¯ããã¸ã§ã¯ãããå³ã¯ãªãã¯ã§「New」→「Alloy Model」ãé¸æ。
ç¶ãã¦、å®éã®ãã¼ãã«ã«ãããã¹ãã¼ãã¼ãå®ç¾©ããããã¨ä¸ã®ãããª「models」ãã£ã¬ã¯ããªã«ãã¡ã¤ã«ãåºæ¥ä¸ãã
ã¨ããããããã§DBãå©ç¨ã§ããç¶æ ã«ãªã。
exports.definition = { config: { columns: { "name": "text", "kana": "text" }, adapter: { type: "sql", collection_name: "test", idAttribute: "name" } }, extendModel: function(Model) { _.extend(Model.prototype, { // extended functions and properties go here }); return Model; }, extendCollection: function(Collection) { _.extend(Collection.prototype, { // extended functions and properties go here }); return Collection; } };ï¼è¡ã ãåºæ¬ã®ã½ã¼ã¹ãã追å ãã¦ãã¾ã「idAttribute: "name"」ãã®é¨åã§ãã
ãã®è¡ãå ããã¨PKã«ãªãããã«ãªã£ã¦ãã¾ã。
ã©ãããåæç¶æ ã§ã¯、columnsã§å®ç¾©ãããé ç®æå¤ã«「id」ã¨å¼ã°ããPKãèªåä»ä¸ãããã¿ããã§ã。
å¤é¨é£æºãããå ´åã¯PKãããããã決ã¾ã£ã¦ããå¯è½æ§ãé«ãã®ã§「idAttribute」ã¯è¦ãã¦ãããæ¹ãããã§ã。
ã¾ã、ããªãã¼ã¿ããã¡ãã«è¨è¼ã§ãã¾ã。 ç°¡åãªããªãã¼ã¿ã§ããã°ããã®ã§ãã
è¤éãªãã®ãã©ã®ããã«æ¸ããããããã£ã¦ããªãã®ã§ã¨ããããä»ã¯æ¾ç½®
ã¨ãããã、Insert,SELECT,DELETE,UPDATEãè¡ãã¾ã。
INSERT
var testModel = Alloy.createModel("test"); testModel.set({"name" : "弦ä¹", "kana" : "ã²ã³ã¤"}); if (testModel.isValid()) { testModel.save(); } else { alert("ç»é²ã«å¤±æãã¾ãã."); }ããã§ç»é²ãã§ãã¾ã。
isValidã¯ããªãã¼ã·ã§ã³ãªã®ã§åæã§ã¯ãã trueãè¿å´ãããã ãã§ã。
å°ãå¿ç¨ãJSONã®ãã¼ã¿ãçµã¿åããã¾ã。
var xhr1 = Ti.Network.createHTTPClient({ onload: function() { var json = JSON.parse(this.responseText); var count = 0; for (var i in json) { count++; var testModel = Alloy.createModel("test"); testModel.set(json[i]); testModel.save(); } } }); xhr1.open("GET", "http://localhost/test.json"); xhr1.send();ãããã£ãæããå®ç¨ä¾ãã¨æãã¾ã。
SELECT
var testModel = Alloy.createCollection("test"); testModel.fetch(); testModel.map(function(test){ Ti.API.info("name:" + test.get("name") + " kana:" + test.get("kana")); });INSERTã¨ç°ãªã、「Alloy.createCollection」ãå©ç¨ãã¦ããç¹ã注æã§ã。
fetchã§ãã¼ã¿ãåå¾ãã¦ãã¾ããããã¯ãã¹ã¦åå¾ã«ãªãã¾ã。
å½ç¶æ¡ä»¶ãæå®ãããã®ã§æ¬¡ã®ããã«è¨è¿°
var testModel = Alloy.createCollection("test"); testModel.fetch(query : { statement: 'SELECT * FROM test WHERE name = ?', params: ['弦ä¹'] }}); testModel.map(function(test){ Ti.API.info("name:" + test.get("name") + " kana:" + test.get("kana")); });PDOãªã©ã§ããè¦ãå½¢å¼ã«ãªãã¾ãã。
ãã®fetchã¯ãããããªå½¢å¼ã§è¨è¼ã§ããããªã®ã§ããã¾ã 模索ä¸ã¨ããããããã§å¯¾å¿ã§ããã®ã§ããã¨ãã¦ãã¾ã。
DELETE
var testModel = Alloy.createCollection('test'); testModel.fetch(query : { statement: 'SELECT * FROM test WHERE name = ?', params: ['弦ä¹'] }}); while(testModel.length > 0) testModel.at(0).destroy();å°ãé¢åã ããã®ãããªæ¸ãæ¹ãä¸è¬çã¿ããã§ã。
whileæãå©ç¨ããã®ãä¸çªè¡æ°ãå°ãªãæ¸ãæ¹ã¿ããã§ãã
ãã®ä»ä½ç¨®é¡ãããã®ã§ãã¡ããéæ試ãã¦ã¾ã¨ãä¸。
UPDATE
var testModel = Alloy.createModel("test"); testModel.set({"name" : "弦ä¹", "kana" : "ã²ã³ã¤"}); if (testModel.isValid()) { testModel.save(); } else { alert("æ´æ°ã«å¤±æãã¾ãã."); }ã©ããã、INSERT OR UPDATEã¨å¼ã°ãããã¨ãå é¨å¦çããã¦ããããã、PKãåãã°æ´æ°ãã使ç¨ã¿ããã§ã。
ããã「idAttribute」ãå©ç¨ãã¦ããçç±ã§ã。
èªåã§å²ãå½ã¦ãããIDã便å©ã§ããããã§ã¯é½åãæªãã¨ããããã®ã§è¨æ©å¿å¤ã«å¯¾å¿ã§ã。
UPDATEã«ã¤ãã¦ã¯、ã¾ã 調ã¹ããã¦ããªãã®ã§èªä¿¡ããªãã§ããããã§åãã¨æãã¾ã。
以ä¸Alloyã§Modelsãå©ç¨ããã§ã。
ããå°ãå¿ç¨ç·¨ãä»å¾ä½ã£ã¦ã¿ããã¨æãã¾ã。