道场日期和 MYSQL

Dojo Dates and MYSQL

我正在使用 Dojo 1.8、MySQL 和 IBM Worklight 框架 6.0 创建移动应用程序。我需要处理日期 (dojo/DateTextBox),以便将它们插入数据库并从数据库中检索以填充日期文本框。

我能举个例子来说明如何实现吗?

这与 Dojo 本身无关。只要您正确使用 Worklight API,Worklight 不关心您为应用程序 UI 使用哪个框架。意思是,只要您将要插入的值传递给适配器调用即可。

请在此处查看我的回答以获得端到端示例:


在下面的示例中,我直接使用 jQuery 传递值:$('#value1').val(),但也可以通过其他方式完成。

HTML:

<h1>Test Insert Into Database</h1>
<input type="text" id="value1" placeholder="value1"/><br/>
<input type="text" id="value2" placeholder="value2"/><br/>
<input type="button" value="Insert values to database" onclick="insertValuesToDB();"/>

main.js:

function insertValuesToDB() {
    var invocationData = {
        adapter: 'insertValuesAdapter',
        procedure: 'insertValuesProcedure',
        parameters: [$('#value1').val(), $('#value2').val()]
    };

    WL.Client.invokeProcedure(invocationData, {onSuccess: insertSuccess, onFailure: insertFailure});
}

function insertSuccess() {
    alert("success");
}

function insertFailure() {
    alert("failure");
}

适配器XML:

...
...
<connectivity>
    <connectionPolicy xsi:type="sql:SQLConnectionPolicy">
        <dataSourceDefinition>
            <driverClass>com.mysql.jdbc.Driver</driverClass>
            <url>jdbc:mysql://localhost:3306/worklight_training</url>
            <user>Worklight</user>
            <password>Worklight</password> 
        </dataSourceDefinition> 
    </connectionPolicy>
    <loadConstraints maxConcurrentConnectionsPerNode="5" />
</connectivity>

<procedure name="insertValuesProcedure"/>
...
...

适配器实现:

var insertValuesProcedureStatement = WL.Server.createSQLStatement("INSERT INTO users(userId, firstName, lastName, password) VALUES (?,?, 'someLastName', 'somePassword')");

function insertValuesProcedure(value1,value2) {
    return WL.Server.invokeSQLStatement({
        preparedStatement : insertValuesProcedureStatement,
        parameters : [value1,value2]
    });
}

这是将 java 脚本日期转换为 MYSQL 日期所需要的

Convert JS date time to MySQL datetime