从mysql调用表是行不通的

时间:2015-10-12 04:36:11

标签: ibm-mobilefirst mobilefirst-adapters

我的适配器工作正常,但无法在客户端代码中调用。我创建了一个按钮,如果单击它应显示数据库表。

是的我已从其他博客复制此代码,但在此处进行了修改,因此需要帮助。

<html>
<head>
            <meta charset="UTF-8">
            <title>vikdemodb</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
            <!--
                <link rel="shortcut icon" href="images/favicon.png">
                <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
            -->
            <link rel="stylesheet" href="css/main.css">
            <script>window.$ = window.jQuery = WLJQ;</script>
        </head>
        <body style="display: none;">
            <!--application UI goes here-->
            <div id="header">
            <h1>database demo</h1>
        </div>          
        <div id="wrapper">
            <input type="button" id="databasecon" value="click me to get data from db" /><br />

        </div>          

            <script src="js/initOptions.js"></script>
            <script src="js/main.js"></script>
            <script src="js/messages.js"></script>
        </body>
</html>

我的main.js

function wlCommonInit(){



        $('#databasecon').click(loadSQLRecords);


}
function loadSQLRecords(){
    var invocationData = {
        adapter : 'vikadap',
        procedure : 'getstudinfo',
        parameters : []
    };

    WL.Client.invokeProcedure(invocationData,{
        onSuccess : loadSQLQuerySuccess,
        onFailure : loadSQLQueryFailure
    });
}

function loadSQLQuerySuccess(result){
    console.log("Retrieve success" + result);
console.log(result.invocationResult.resultSet);
}

function loadSQLQueryFailure(result){
    WL.Logger.error("Retrieve failure");
}

我的适配器实现

var procedure1Statement = WL.Server.createSQLStatement("select * from studentinfo");
function getstudinfo() {
    return WL.Server.invokeSQLStatement({
        preparedStatement : procedure1Statement,
        parameters : []
    });
}

这里是我的adap.xml

<wl:adapter name="vikadap"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:wl="http://www.ibm.com/mfp/integration"
    xmlns:sql="http://www.ibm.com/mfp/integration/sql">

    <displayName>vikadap</displayName>
    <description>vikadap</description>
    <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:***/***</url>
                <user>****</user>
                <password>****</password> 
            </dataSourceDefinition>
        </connectionPolicy>
    </connectivity>

    <procedure name="getstudinfo"/>

1 个答案:

答案 0 :(得分:0)

我必须说这很难过。你复制整个&#34;实施&#34;从其他地方,但不要复制将完成它的一件事 - 显示适配器检索的数据。然后,你问一个问题怎么做......我不知道你的项目的最终目标是什么,但我不认为如果你继续这样的话,你会到达那里

您可以显示结果的一种方法是这样的函数:

 public class MainActivity extends Activity {

    private ImageView img;
    private AQuery aq;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        aq = new AQuery(this);
        img=(ImageView)findViewById(R.id.simpleLoadImg);
        aq.id(R.id.simpleLoadImg).image("103.24.4.60/CLASSNK1/MobileService.svc/DownloadFile/FileName/3_20150928162252018.png",false,false);

    }


}

此功能假设您的HTML中有UL,然后将LI附加到项目中。

您需要更改此设置以适合您的表格设计,并使用数据库中正确的属性名称更改function displayFeeds(items){ var ul = $('#itemsList'); for (var i = 0; i < items.length; i++) { var li = $('<li/>').html(items[i].sid); li.append($('<li/>').html(items[i].sname)); li.append($('<li/>').html(items[i].sgrade)); li.append($('<hr>')); ul.append(li); } } sidsname

下次复制时,至少复制所有内容:http://javatechig.com/ibm-worklight/invoking-adapter-procedure-in-ibm-worklight