2015-05-07 43 views
0

我想我的IBM MobileFirst的应用程序连接到我的数据库,IBM MobileFirst SQL适配器

我用wampserver(本地主机), 用户名= “根”,密码= “...”,数据库名=“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"/> 

下面是myAdapter-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没有定义

+0

我相信你需要提供密码。你是否面对这个配置的任何问题?如果是这样,请提供必要的详细信息,如错误/代码等。但是,此论坛不用于一般性讨论和验证 – dhineshsundar

+0

我的密码为空,对不起,由于IBM MobileFirst没有太多教程或示例,所以我确实希望有人能指导我,不管我的语法是否正确,尤其是 jdbc:mysql:// localhost:3306/mydatabase

+0

你面临什么问题?你是否收到错误信息? –

回答

1

这个问题是完全无关,你的SQL适配器。

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

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

为了在应用程序中使用多个“页”,请参阅以下教程:

你一定从来没有真正从框架的背景下导航了,所以等操作因为a href是不允许的。

如果要将“页面”分隔为不同的HTML文件,您可以看到this example project using jQuery Mobile。其他UI框架(如Dojo)也提供了自己的实现,以实现多页面支持,您可以在MFP应用程序中使用该支持。

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

+0

非常感谢你,你是对的。 –

相关问题