2015-05-07 90 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

非常感謝你,你是對的。 –

相關問題