IBM MobileFirst SQL 适配器

IBM MobileFirst SQL Adapter

我想将我的 IBM MobileFirst 应用程序连接到我的数据库,

我使用 wampserver(本地主机), 用户名 = "root",密码 = "...",数据库名称 = "mydatabase".

在我的 MobileFirst 项目中,我创建了一个 SQL 适配器 "myAdapter"。
在 myAdapter.xml 中,这是代码:

<connectivity>
    <connectionPolicy xsi:type="sql:SQLConnectionPolicy">
        <!-- Example for using a JNDI data source, replace with actual data source name -->
        <!-- <dataSourceJNDIName>java:/data-source-jndi-name</dataSourceJNDIName> -->

        <!-- Example for using MySQL connector, do not forget to put the MySQL connector library in the project's lib folder -->
        <dataSourceDefinition>
            <driverClass>com.mysql.jdbc.Driver</driverClass>
            <url>jdbc:mysql://localhost:3306/mydatabase</url>
            <user>root</user>
            <password></password> 
        </dataSourceDefinition>
    </connectionPolicy>
</connectivity>
<!-- Replace this with appropriate procedures -->
<procedure name="insertMyTable1"/>

下面是我的适配器-impl.js文件

        var insertMyTable = WL.Server.createSQLStatement( 
"IESERT INTO mytable" +
"VALUES (? , ? , ?);");

function insertMyTable1(id, name, age){
return WL.Server.invokeSQLStatement({
    preparedStatement : insertMyTable,
    parameters : [id, name, age]
});

}

//------------------------------------

在我的一个页面中,我有一个 addData.html 文件,下面是代码:

<html>
<script>
function insertData(){
    var id = document.getElementById("id").value;
    var name = document.getElementById("name").value;
    var age = parseInt(document.getElementById("age").value);
    WL.Client.invokeProcedure({
        adapter : "myAdapter",
        procedure : "insertMyTable1",
        parameters : [ id, name, age ]
    });
}
</script>
<body>
<form action="javascript:insertData();">
<table align="center">
<tr>
<td>Id : </td>
<td><input type="text" id="id"></td>
</tr>
<tr>
<td>Name : </td>
<td><input type="text" id="name"></td>
</tr>
<tr>
<td>Age : </td>
<td><input type="text" id="age"></td>
</tr>
<tr>
<td colspan="2" align="center">
    <button type="submit" style="width:100px;">Add</button>
</td>
</tr>
</table>
</form>
</body>
</html>

但是我无法将数据插入到mydatabase->mytable,谁知道为什么??

错误日志(在我的addData.html中) 未捕获的 ReferenceError:WL 未定义

此问题与您的 SQL 适配器完全无关。

这里的问题是您使用 a href 导航到另一个 HTML 文件。通过这样做,您已经退出了 MFP 框架的范围或上下文,这就是为什么您无法使用 MFP API 方法,例如 WL.Client.invokeProcedure.

MFP 混合应用程序是单页应用程序。在应用程序的 index.html 中有对 MFP JavaScript 框架的引用以便加载它...没有这些,事情就会崩溃。

要在您的应用程序中使用多个 "pages",请参阅以下教程:

您绝不能真正离开框架的上下文,因此不允许进行 a href 等操作。

如果你想把你的"pages"分开成HTML个文件,你可以看this example project using jQuery Mobile。其他 UI 框架(例如 Dojo)也提供了自己的多页面支持实现,您可以在 MFP 应用程序中使用。

相关问题:https://whosebug.com/search?q=%5Bworklight%5D+multipage+is%3Aquestion