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
我想将我的 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