
ããŒã¿ååŸã®ã¢ã¡ããã£
ããã«ããæ»ãå€ããšããèšèã®äžã§ã¯ãé¢æ°ãåŒã³åºããçµæã§ã¯ãªãã2çªç®ã®ãã©ã¡ãŒã¿ãŒã³ãŒã«ããã¯ãæå³ããŸãã
1ã€ã®ã¬ã³ãŒãã®ãã§ããïŒæ¥ç¶ã queryRow ïŒsqlãvaluesãcallbackïŒã¯ããã£ãŒã«ãåãããŒã«ãªãããã·ã¥ïŒé£æ³é åïŒãè¿ããŸãïŒã¯ãšãªã§é åå ã®é åãååŸãã代ããã«ïŒã
äŸ
connection.queryRow('SELECT * FROM Language where LanguageId=?', [3], function(err, row) { console.dir({queryRow:row}); /* Example: queryRow: { LanguageId: 3, LanguageName: 'Russian', LanguageSign: 'ru', LanguageISO: 'ru', Caption: '' } */ });
ã¹ã«ã©ãŒ ïŒã€ãŸããåäžã®å€ïŒã®ååŸïŒæ¥ç¶ã queryValue ïŒsqlãvaluesãcallbackïŒã¯ãåäžã®å€ãæã€é åã®é åãååŸãã代ããã«ãåäžã®å€ãè¿ããŸãã 1ã€ã®ã¬ã³ãŒããã1ã€ã®ãã£ãŒã«ãããã§ãããããšãã«äŸ¿å©ã§ããããšãã°ãLIMIT 1ã瀺ãååã«ããIDããŸãã¯é¢æ°countïŒ*ïŒãmaxïŒfieldïŒãªã©ã§ãã
äŸ
connection.queryValue('SELECT LanguageName FROM Language where LanguageId=?', [8], function(err, name) { console.dir({queryValue:name}); /* Example: queryValue: 'Italiano' */ });
åäžåãã§ãã ïŒæ¥ç¶ã queryCol ïŒsqlãvaluesãcallbackïŒã¯ãã¯ãšãªã®çµæããåã¬ã³ãŒãã®1ã€ã®ãã£ãŒã«ãã®å€ã§æºããããé åãè¿ããŸãã ã€ãŸããæ°Žå¹³ã¬ã³ãŒãqueryRowã®éžæã§ã¯ãªããåçŽåã®éžæã§ãã
UPDïŒ gelasã¯ãqueryArrayã®ååãqueryRowã«äŒŒãqueryColã«å€æŽããããã«ç§ã説åŸããŸããã
äŸ
connection.queryCol('SELECT LanguageSign FROM Language', [], function(err, result) { console.dir({queryCal:result}); /* Example: queryArray: [ 'de', 'en', 'es', 'fr', 'it', 'pl', 'ru', 'ua' ] */ });
ããã·ã¥ãã§ãã ïŒæ¥ç¶ã queryHash ïŒsqlãvaluesãcallbackïŒã¯ã2ã¬ãã«ã®ãã¹ãã®ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸãã第1ã¬ãã«ã®ããŒã¯ã¯ãšãªçµæã®æåã®ãã£ãŒã«ãã®å€ã§ããã第2ã¬ãã«ã®ããŒã¯ã¯ãšãªçµæã®ãã¹ãŠã®ãã£ãŒã«ãïŒæåãå«ãïŒã§ãã
äŸ
connection.queryHash( 'SELECT LanguageSign, LanguageId, LanguageName, Caption, LanguageISO FROM Language', [], function(err, result) { console.dir({queryHash:result}); /* Example: queryHash: { en: { LanguageSign: 'en', LanguageId: 2, LanguageName: 'English', Caption: '', LanguageISO: 'en' }, ru: { LanguageSign: 'ru', LanguageId: 3, LanguageName: 'Russian', Caption: '', LanguageISO: 'ru' }, de: { LanguageSign: 'de', LanguageId: 7, LanguageName: 'Deutsch', Caption: '', LanguageISO: 'de' }, it: { LanguageSign: 'it', LanguageId: 8, LanguageName: 'Italiano', Caption: '', LanguageISO: 'it' } } */ });
ããŒ/å€ã®ãã¢ã®éžæïŒæ¥ç¶ã queryKeyValue ïŒsqlãvaluesãcallbackïŒã¯ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããããã§ãããŒã¯ã¯ãšãªçµæããã¯ãšãªãžã®æåã®ãã£ãŒã«ãã§ãã
äŸ
connection.queryKeyValue( 'SELECT LanguageISO, LanguageName FROM Language', [], function(err, keyValue) { console.dir({queryKeyValue:keyValue}); /* Example: keyValue: { en: 'English', ru: 'Russian', uk: 'Ukrainian', es: 'Espanol', fr: 'Francais', de: 'Deutsch', it: 'Italiano', pl: 'Poliski' } */ });
ã€ã³ããã¹ãã¯ã·ã§ã³ã®äŸ¿å©ã
ã€ãŸããåæã®ããã®ããŒã¿ããŒã¹ã®ã¡ã¿ããŒã¿ãæ§é ãããã³ãã©ã¡ãŒã¿ãŒã®ååŸãããã³ãã®ããŒã¿ããŒã¹ãæäœããããã®ããžãã¯ãŸãã¯ã€ã³ã¿ãŒãã§ãŒã¹ã®èªåæ§ç¯ã®äŸ¿å©ãã
äž»ããŒã®ååŸïŒæ¥ç¶ã primary ïŒããŒãã«ãã³ãŒã«ããã¯ïŒã¯ããã©ã€ããªããŒã«é¢ããã¡ã¿ããŒã¿ãå«ãããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããäŸã®ã¡ã¿ããŒã¿ã»ãããåç §ããŠãã ããã
äŸ
connection.primary('Language', function(err, primary) { console.dir({primary:primary}); /* Example: primary: { Table: 'language', Non_unique: 0, Key_name: 'PRIMARY', Seq_in_index: 1, Column_name: 'LanguageId', Collation: 'A', Cardinality: 9, Sub_part: null, Packed: null, Null: '', Index_type: 'BTREE', Comment: '', Index_comment: '' } */ });
å€éšããŒã®ååŸïŒæ¥ç¶ã foreign ïŒããŒãã«ãã³ãŒã«ããã¯ïŒã¯ãããã«ãã¹ãã§ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããæåã®ã¬ãã«ã¯å€éšããŒã®ååã§ã2çªç®ã¯ãã®ããŒãèšè¿°ããã¡ã¿ããŒã¿ã§ãã äžé£ã®ãã£ãŒã«ãã«ã€ããŠã¯ãäŸãåç §ããŠãã ããã
äŸ
connection.foreign('TemplateCaption', function(err, foreign) { console.dir({foreign:foreign}); /* Example: foreign: { fkTemplateCaptionLanguage: { CONSTRAINT_NAME: 'fkTemplateCaptionLanguage', COLUMN_NAME: 'LanguageId', ORDINAL_POSITION: 1, POSITION_IN_UNIQUE_CONSTRAINT: 1, REFERENCED_TABLE_NAME: 'language', REFERENCED_COLUMN_NAME: 'LanguageId' }, fkTemplateCaptionTemplate: { CONSTRAINT_NAME: 'fkTemplateCaptionTemplate', COLUMN_NAME: 'TemplateId', ORDINAL_POSITION: 1, POSITION_IN_UNIQUE_CONSTRAINT: 1, REFERENCED_TABLE_NAME: 'template', REFERENCED_COLUMN_NAME: 'TemplateId' } */ });
æŽåæ§å¶çŽã®ååŸïŒæ¥ç¶ã å¶çŽ ïŒããŒãã«ãã³ãŒã«ããã¯ïŒã¯ãäºéãã¹ãã®ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããæåã®ã¬ãã«ã¯æŽåæ§å¶çŽã®ååã§ã2çªç®ã¯åå¶çŽãèšè¿°ããã¡ã¿ããŒã¿ã§ãã äžé£ã®ãã£ãŒã«ãã®äŸãåç §ããŠãã ããã
äŸ
connection.constraints('TemplateCaption', function(err, constraints) { console.dir({constraints:constraints}); /* Example: constraints: { fkTemplateCaptionLanguage: { CONSTRAINT_NAME: 'fkTemplateCaptionLanguage', UNIQUE_CONSTRAINT_NAME: 'PRIMARY', REFERENCED_TABLE_NAME: 'Language', MATCH_OPTION: 'NONE', UPDATE_RULE: 'RESTRICT', DELETE_RULE: 'CASCADE' }, fkTemplateCaptionTemplate: { CONSTRAINT_NAME: 'fkTemplateCaptionTemplate', UNIQUE_CONSTRAINT_NAME: 'PRIMARY', REFERENCED_TABLE_NAME: 'Template', MATCH_OPTION: 'NONE', UPDATE_RULE: 'RESTRICT', DELETE_RULE: 'CASCADE' } } */ });
ããŒãã«ãã£ãŒã«ãã«é¢ããã¡ã¿ããŒã¿ã®ååŸïŒæ¥ç¶ã fields ïŒããŒãã«ãã³ãŒã«ããã¯ïŒã¯ãååãã¿ã€ãããã¹ãŠã®ä¿®é£Ÿåãšãã©ã°ãã³ã¡ã³ããå«ãåãã£ãŒã«ãã®ã¡ã¿ããŒã¿ãæã€é åãè¿ããŸãïŒè©³çŽ°ã«ã€ããŠã¯äŸãåç §ããŠãã ããïŒã
äŸ
connection.fields('Language', function(err, fields) { console.dir({fields:fields}); /* Example: fields: { LanguageId: { Field: 'LanguageId', Type: 'int(10) unsigned', Collation: null, Null: 'NO', Key: 'PRI', Default: null, Extra: 'auto_increment', Privileges: 'select,insert,update,references', Comment: 'Id(EN),(RU)' }, LanguageName: { Field: 'LanguageName', Type: 'varchar(32)', Collation: 'utf8_general_ci', Null: 'NO', Key: 'UNI', Default: null, Extra: '', Privileges: 'select,insert,update,references', Comment: 'Name(EN),(RU)' }, ... } */ });
ãã®æ¥ç¶ã§äœ¿çšå¯èœãªããŒã¿ããŒã¹ã®ãªã¹ãã®ååŸïŒconnectionã ããŒã¿ããŒã¹ ïŒã³ãŒã«ããã¯ïŒã¯ãããŒã¿ããŒã¹åïŒãŸãã¯ãã¹ããŒãããšåŒã°ããããšãããïŒã®é åãè¿ããŸãã
äŸ
connection.databases(function(err, databases) { console.dir({databases:databases}); /* Example: databases: [ 'information_schema', 'mezha', 'mysql', 'performance_schema', 'test' ] */ });
ãã®æ¥ç¶ïŒconnectionã«å¯ŸããŠçŸåšéžæãããŠããããŒã¿ããŒã¹ã®ããŒãã«ã®ãªã¹ããååŸããŠããŸãã tables ïŒã³ãŒã«ããã¯ïŒã¯ãäºéãã¹ãã®ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããæåã®ã¬ãã«ã§ã¯ããŒã¯ããŒãã«ã®ååã§ã2çªç®ã§ã¯åããŒãã«ã®ã¡ã¿ããŒã¿ã§ãã
äŸ
connection.tables(function(err, tables) { console.dir({tables:tables}); /* Example: tables: { Language: { TABLE_NAME: 'Language', TABLE_TYPE: 'BASE TABLE', ENGINE: 'InnoDB', VERSION: 10, ROW_FORMAT: 'Compact', TABLE_ROWS: 9, AVG_ROW_LENGTH: 1820, DATA_LENGTH: 16384, MAX_DATA_LENGTH: 0, INDEX_LENGTH: 49152, DATA_FREE: 8388608, AUTO_INCREMENT: 10, CREATE_TIME: Mon Jul 15 2013 03:06:08 GMT+0300 ( ()), UPDATE_TIME: null, CHECK_TIME: null, TABLE_COLLATION: 'utf8_general_ci', CHECKSUM: null, CREATE_OPTIONS: '', TABLE_COMMENT: '_Language:Languages(EN),(RU)' }, ... } */ });
UPDïŒæå®ãããããŒã¿ããŒã¹ã®ããŒãã«ã®ãªã¹ããååŸããŸãïŒæ¥ç¶ã databaseTables ïŒããŒã¿ããŒã¹ãã³ãŒã«ããã¯ïŒã¯ãäºéãã¹ãã®ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããæåã®ã¬ãã«ã§ã¯ããŒã¯ããŒãã«ã®ååã§ã2çªç®ã¯åããŒãã«ã®ã¡ã¿ããŒã¿ã§ãã
äŸ
connection.databaseTables("databaseName", function(err, tables) { console.dir({databaseTables:tables}); /* Example: tables: { Language: { TABLE_NAME: 'Language', TABLE_TYPE: 'BASE TABLE', ENGINE: 'InnoDB', VERSION: 10, ROW_FORMAT: 'Compact', TABLE_ROWS: 9, AVG_ROW_LENGTH: 1820, DATA_LENGTH: 16384, MAX_DATA_LENGTH: 0, INDEX_LENGTH: 49152, DATA_FREE: 8388608, AUTO_INCREMENT: 10, CREATE_TIME: Mon Jul 15 2013 03:06:08 GMT+0300 ( ()), UPDATE_TIME: null, CHECK_TIME: null, TABLE_COLLATION: 'utf8_general_ci', CHECKSUM: null, CREATE_OPTIONS: '', TABLE_COMMENT: '_Language:Languages(EN),(RU)' }, ... } */ });
æå®ãããããŒãã«ã®æ¥ç¶ã®ã¡ã¿ããŒã¿ãååŸããŠããŸã ã tableInfo ïŒããŒãã«ãã³ãŒã«ããã¯ïŒã¯ãã¡ã¿ããŒã¿ãå«ãããã·ã¥ïŒé£æ³é åïŒãè¿ããŸãïŒè©³çŽ°ã«ã€ããŠã¯äŸãåç §ããŠãã ããïŒã
äŸ
connection.tableInfo('Language', function(err, info) { console.dir({tableInfo:info}); /* Example: tableInfo: { Name: 'language', Engine: 'InnoDB', Version: 10, Row_format: 'Compact', Rows: 9, Avg_row_length: 1820, Data_length: 16384, Max_data_length: 0, Index_length: 49152, Data_free: 9437184, Auto_increment: 10, Create_time: Mon Jul 15 2013 03:06:08 GMT+0300 ( ()), Update_time: null, Check_time: null, Collation: 'utf8_general_ci', Checksum: null, Create_options: '', Comment: '' } */ });
ãã®è¡šã®ãã¹ãŠã®ããŒã«é¢ããã¡ã¿ããŒã¿ã®ååŸïŒæ¥ç¶ã ã€ã³ããã¯ã¹ ïŒããŒãã«ãã³ãŒã«ããã¯ïŒã¯ããã·ã¥ïŒé£æ³é åïŒãè¿ããŸããïŒ ãã®ç¬¬1ã¬ãã«ã®ããŒã¯ããŒã¿ããŒã¹ããŒã®ååïŒïŒã§ããã第2ã¬ãã«ã®ããŒã¯åããŒã«é¢ããã¡ã¿ããŒã¿ã§ãïŒã¡ã¿ããŒã¿ã®è©³çŽ°ãªãªã¹ãã®äŸãåç §ïŒã
äŸ
connection.indexes('Language', function(err, info) { console.dir({tableInfo:info}); /* Example: indexes: { PRIMARY: { Table: 'language', Non_unique: 0, Key_name: 'PRIMARY', Seq_in_index: 1, Column_name: 'LanguageId', Collation: 'A', Cardinality: 9, Sub_part: null, Packed: null, Null: '', Index_type: 'BTREE', Comment: '', Index_comment: '' }, akLanguage: { Table: 'language', Non_unique: 0, Key_name: 'akLanguage', Seq_in_index: 1, Column_name: 'LanguageName', Collation: 'A', Cardinality: 9, Sub_part: null, Packed: null, Null: '', Index_type: 'BTREE', Comment: '', Index_comment: '' } } */ });
MySQL ãµãŒããŒã§ã®ããã»ã¹ã®ååŸïŒæ¥ç¶ã processes ïŒã³ãŒã«ããã¯ïŒã¯ãåããã»ã¹ã«ãã©ã¡ãŒã¿ãŒãæå®ãããŠããããã·ã¥ã®é åãè¿ããŸãã
äŸ
connection.processes(function(err, processes) { console.dir({processes:processes}); /* Example: processes: [ { ID: 62, USER: 'mezha', HOST: 'localhost:14188', DB: 'mezha', COMMAND: 'Query', TIME: 0, STATE: 'executing', INFO: 'SELECT * FROM information_schema.PROCESSLIST' }, { ID: 33, USER: 'root', HOST: 'localhost:39589', DB: null, COMMAND: 'Sleep', TIME: 1, STATE: '', INFO: null } ] */ });
ã°ããŒãã«ãª MySQL å€æ°ã®ååŸïŒæ¥ç¶ã globalVariables ïŒã³ãŒã«ããã¯ïŒ
äŸ
connection.globalVariables(function(err, globalVariables) { console.dir({globalVariables:globalVariables}); /* Example: globalVariables: { MAX_PREPARED_STMT_COUNT: '16382', MAX_JOIN_SIZE: '18446744073709551615', HAVE_CRYPT: 'NO', PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE: '10000', INNODB_VERSION: '5.5.32', FLUSH_TIME: '1800', MAX_ERROR_COUNT: '64', ... } */ });
MySQLïŒæ¥ç¶ã®ã°ããŒãã«ã¹ããŒã¿ã¹ã®ååŸã globalStatus ïŒã³ãŒã«ããã¯ïŒ
äŸ
connection.globalStatus(function(err, globalStatus) { console.dir({globalStatus:globalStatus}); /* Example: globalStatus: { ABORTED_CLIENTS: '54', ABORTED_CONNECTS: '2', BINLOG_CACHE_DISK_USE: '0', BINLOG_CACHE_USE: '0', BINLOG_STMT_CACHE_DISK_USE: '0', BINLOG_STMT_CACHE_USE: '0', BYTES_RECEIVED: '654871', BYTES_SENT: '212454927', COM_ADMIN_COMMANDS: '594', ... } */ });
MySQL ãŠãŒã¶ãŒã®ãªã¹ãïŒæ¥ç¶ã ãŠãŒã¶ãŒ ïŒã³ãŒã«ããã¯ïŒ
äŸ
connection.users(function(err, users) { console.dir({users:users}); /* Example: users: [ { Host: 'localhost', User: 'root', Password: '*90E462C37378CED12064BB3388827D2BA3A9B689', Select_priv: 'Y', Insert_priv: 'Y', Update_priv: 'Y', Delete_priv: 'Y', Create_priv: 'Y', Drop_priv: 'Y', Reload_priv: 'Y', Shutdown_priv: 'Y', Process_priv: 'Y', File_priv: 'Y', Grant_priv: 'Y', References_priv: 'Y', Index_priv: 'Y', Alter_priv: 'Y', Show_db_priv: 'Y', Super_priv: 'Y', Create_tmp_table_priv: 'Y', Lock_tables_priv: 'Y', Execute_priv: 'Y', Repl_slave_priv: 'Y', Repl_client_priv: 'Y', Create_view_priv: 'Y', Show_view_priv: 'Y', Create_routine_priv: 'Y', Alter_routine_priv: 'Y', Create_user_priv: 'Y', Event_priv: 'Y', Trigger_priv: 'Y', Create_tablespace_priv: 'Y', ssl_type: '', ssl_cipher: <Buffer >, x509_issuer: <Buffer >, x509_subject: <Buffer >, max_questions: 0, max_updates: 0, max_connections: 0, max_user_connections: 0, plugin: '', authentication_string: '' }, ... ] */ });
ã¯ãšãªçæã®äŸ¿å©ã
SQLãçæããããWHEREåŒãå®å šã«åé¢ããããå¥ã ã«ãããããããšãã§ãããéåžžã«åªãã䟿å©ã ç§èªèº«ã¯ãã®ãããªç ç³ã®æ¯æè ã§ã¯ãããŸããããäºåã«ç¥ãããŠããªãã¯ãšãªã®çæãèªååããããšãå¿ èŠãªå ŽåããããŸãã
æ¡ä»¶çæ ïŒæ¥ç¶ã ãã㧠ïŒæ¡ä»¶ïŒã¯ãä»ã®æ©èœãšåæ§ã«ãéåæã§ã¯ãªãåæçã«æ©èœããŸãã ã³ãŒã«ããã¯ã䜿çšããŸããã JSONã¹ã¿ã€ã«ã§èšè¿°ãããæ¡ä»¶ã®çµã¿èŸŒã¿WHERE SQLåŒãè¿ããŸãã ç解ããã«ã¯ãäŸãå¿ ã確èªããå¿ èŠããããŸãã
äŸ
var where = connection.where({ id: 5, year: ">2010", price: "100..200", level: "<=3", sn: "*str?", label: "str", code: "(1,2,4,10,11)" }); console.dir(where); // Output: "id = 5 AND year > '2010' AND (price BETWEEN '100' AND '200') AND // level <= '3' AND sn LIKE '%str_' AND label = 'str' AND code IN (1,2,4,10,11)"
æ¡ä»¶ä»ãã®éžæ ïŒæ¥ç¶ã éžæ ïŒããŒãã«ãwhereFilterãã³ãŒã«ããã¯ïŒ
äŸ
connection.select('Language', '*', { LanguageId: "1..3" }, function(err, results) { console.dir({select:results}); });
ã¬ã³ãŒãã®æ¿å ¥ ïŒæ¥ç¶ã æ¿å ¥ ïŒããŒãã«ãè¡ãã³ãŒã«ããã¯ïŒ
äŸ
connection.insert('Language', { LanguageName: 'Tatar', LanguageSign:'TT', LanguageISO:'TT', Caption:'Tatar' }, function(err, recordId) { console.dir({insert:recordId}); });
ã¬ã³ãŒãã®ç·šé ïŒæ¥ç¶ã æŽæ° ïŒããŒãã«ãè¡ãã³ãŒã«ããã¯ïŒ
äŸ
connection.update('Language', { LanguageId: 25, LanguageName:'Tatarca', LanguageSign:'TT', LanguageISO:'TT', Caption:'Tatarca' }, function(err, affectedRows) { console.dir({update:affectedRows}); });
ãã®ãããªãšã³ããªããªãå Žåã¯æ¿å ¥ ãããããã§ã«ååšããå Žåã¯å€æŽããŸãïŒconnectionã ã¢ãããµãŒã ïŒããŒãã«ãè¡ãã³ãŒã«ããã¯ïŒ
äŸ
connection.upsert('Language', { LanguageId: 25, LanguageName:'Tatarca', LanguageSign:'TT', LanguageISO:'TT', Caption:'Tatarca' }, function(err, affectedRows) { console.dir({upsert:affectedRows}); });
ç¹å®ã®ãã£ã«ã¿ãŒãŸãã¯ãã£ã«ã¿ãŒãªãã§ããŒãã«å ã®ã¬ã³ãŒãæ°ãååŸïŒconnection.countïŒtableãwhereFilterãcallbackïŒ
äŸ
connection.count('Language', { LanguageId: ">3" }, function(err, count) { console.dir({count:count}); /* Example: count: 9 */ });
1ã€ãŸãã¯è€æ°ã®ã¬ã³ãŒãïŒæ¥ç¶ãåé€ããŸãã åé€ ïŒããŒãã«ãwhereFilterãã³ãŒã«ããã¯ïŒ
äŸ
connection.delete('Language', { LanguageSign:'TT' }, function(err, affectedRows) { console.dir({delete:affectedRows}); });
ãŠãŒã¹ã±ãŒã¹
UPDïŒ ç¬ç«ããã¢ãžã¥ãŒã«ã䜿çšããããšããå§ãããŸãããã©ã€ããŒãããæœè±¡åã®ã¬ãã«ãé«ããORMã©ã€ãã©ãªã»ã©é«ããããŸããã ãã®é¢åãªããšã¯ããããããŸããããŸããäžçŽç©ïŒå¿ èŠãªå Žåã®ã¿ïŒã®é¢æ°ã°ã«ãŒããä»ããŠæ¥ç¶ã«æ©èœãè¿œå ããæ©äŒãæ®ããããšæããŸãã
ããã¯æ¬¡ã®ããã«è¡ãããŸãã
// Library dependencies var mysql = require('mysql'), mysqlUtilities = require('utilities'); var connection = mysql.createConnection({ host: 'localhost', user: 'userName', password: 'secret', database: 'databaseName' }); connection.connect(); // Mix-in for Data Access Methods and SQL Autogenerating Methods mysqlUtilities.upgrade(connection); // Mix-in for Introspection Methods mysqlUtilities.introspection(connection); // Do something using utilities connection.queryRow( 'SELECT * FROM _Language where LanguageId=?', [3], function(err, row) { console.dir({queryRow:row}); } ); // Release connection connection.end();
äžèšã®ãã¹ãŠã®æ©èœãåããnode-mysqlãã©ã€ããŒçšã®ãããããããŸãïŒ https : //github.com/felixge/node-mysql
3çªç®ã®äœ¿çšäŸã¯ããã®ã©ã€ãã©ãªãçµã¿èŸŒãŸããŠããNode.jsçšã®Impressã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã§ãã MySQLãžã®ãã¹ãŠã®æ¥ç¶ã«ã¯ããã«Impressã®ãµã³ããªã³ã°é¢æ°ã®2ã€ã®ã°ã«ãŒãããããæ¥ç¶ãéããããšèªåçã«æ··åãããŸãããŸããMySQLã®ãã©ã°ã€ã³ã®ã»ããã次ã®ããã«ãªãããã«ã察å¿ãããã©ã°ã€ã³ã®ã³ã¡ã³ããå€ãå¿ èŠãããæ§æãä»ããŠã€ã³ããã¹ãã¯ã·ã§ã³ã®ã¿ãè¿œå ã§ããŸãïŒ
plugins: { require: [ "db", "db.mysql", "db.mysql.introspection", ... ] },...
次ã«ããã©ã°ã€ã³ã¯åæ¥ç¶ãšèªåçã«æ··åããŸããifïŒdb.mysql.introspectionïŒdb.mysql.introspectionïŒconnectionïŒ;
Impressãã©ã°ã€ã³ã®ãœãŒã¹ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
- https://github.com/tshemsedinov/impress/blob/master/lib/db.mysql.js
- https://github.com/tshemsedinov/impress/blob/master/lib/db.mysql.introspection.js
åç §è³æ
UPDïŒå·çæç¹ã§ã¯ã2ã€ã®å®è£ ãªãã·ã§ã³ïŒãã©ã€ããŒã®ããããšImpressã®ã¢ãžã¥ãŒã«ïŒããããŸãããã調æ»ã§ã¯ãæéããããŠãã®ã©ã€ãã©ãªãåå¥ã®ã¢ãžã¥ãŒã«ãšããŠèšèšããããšãçã«ããªã£ãŠããããšãçŽåŸã§ããŸããã ããã¯åãæ¥ã®å€æ¹ãŸã§ã«è¡ãããŸããã ãã ãããããã®ã¢ã¡ããã£ã®æçšæ§ã®çšåºŠãå€æããããã«èª¿æ»ãçµäºããããšã¯ãããŸããã
äž»ãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
GithubïŒ https : //github.com/tshemsedinov/node-mysql-utilities
nmpãªããžããªãŒå ïŒ https ://npmjs.org/package/mysql-utilities