Codenameone 如何访问代号为one的Web服务器上的sqlite数据库

Codenameone 如何访问代号为one的Web服务器上的sqlite数据库,codenameone,Codenameone,请问我怎样才能访问代号为one的Web服务器上的sqlite数据库?我只能使用数据库API访问设备上的数据库。为了在Web服务器上访问它,我认为这是完全不同的事情。请我需要一个关于这个的代码片段。谢谢请使用下面未经测试的代码,您可能需要根据需要对其进行调整。如果有问题,请留下评论: ConnectionRequest req = new ConnectionRequest() { @Override protected void handleException(Exception

请问我怎样才能访问代号为one的Web服务器上的sqlite数据库?我只能使用数据库API访问设备上的数据库。为了在Web服务器上访问它,我认为这是完全不同的事情。请我需要一个关于这个的代码片段。谢谢

请使用下面未经测试的代码,您可能需要根据需要对其进行调整。如果有问题,请留下评论:

ConnectionRequest req = new ConnectionRequest() {
    @Override
    protected void handleException(Exception ex) {
        //handle error
    }
};
req.setUrl(YourURL);
req.setPost(true);
req.setHttpMethod("POST"); //Change to GET if necessary
req.setDuplicateSupported(true);
req.addArgument("argumentToSendThroughPostOrGet1", "value1");
req.addArgument("argumentToSendThroughPostOrGet2", "value2");
NetworkManager.getInstance().addToQueueAndWait(req);

if (req.getResponseCode() == 200) {
    Map<String, Object> out = new HashMap<>();
    Display.getInstance().invokeAndBlock(() -> {
        JSONParser p = new JSONParser();
        try (InputStreamReader r = new InputStreamReader(new ByteArrayInputStream(req.getResponseData()))) {
            out.putAll(p.parseJSON(r));
        } catch (IOException ex) {
            //handle error
        }
    });
    if (!out.isEmpty()) {
         List<Map<String, Object>> responses = (List<Map<String, Object>>) out.get("response");
         for (Object response : responses) {
             Map res = (Map) response;
             System.out.println(res.get("key"));
         }
    } else {
        //handle error
    }
} else {
    //handle error
}
编辑:

{
    "response": [
        {
            "key": "I was returned",
        }
    ]
}
要从TextField传递数据,请执行以下操作:

req.addArgument("argumentToSendThroughPostOrGet1", myTextField.getText());
根据您的评论,您可以在PHP中阅读这些参数,如下所示:

$var1 = $_POST["argumentToSendThroughPostOrGet1"];
$var1 = $_GET["argumentToSendThroughPostOrGet1"]; // if GET method is used in Codename One
//Or use $_REQUEST which supports both methods but not advisable to be used for production
...
您可以在php代码中正常使用这些变量

使用MySql查询的示例:

class Connection {

    function connect() {
        $mysqli = mysqli_init();
        $mysqli->real_connect("localhost", "username", "password", "databaseName") or die('Could not connect to database!');
        $mysqli->query("SET NAMES 'UTF8'");
        return $mysqli;
    }

    function close() {
        mysqli_close($this->connect);
    }

}


$connection = new Connection();
$mysqli = $connection->connect();
$mysqli->query("SELECT * FROM MyTable WHERE ColumnName LIKE '%$var1%' ORDER BY PrimaryKeyId ASC LIMIT 100");

您的web服务器代码是否返回JSON或XML,以及相同的代码是否接受HTTP POST或GET请求?您的服务器端代码是用什么语言编写的?它返回JSON和XML,还接受HTTP POST或GET请求。服务器端语言phpSQLite在设备上运行,在服务器上您需要有一个Web服务器。Web服务器背后的数据库被该服务器“隐藏”(或封装)。感谢您的关注,我非常感谢您的回复。以上代码是否与sqlite数据库文件交互?。因为我想在sqlite数据库中调用record。对不起,请回答这个问题。谢谢,这适用于使用Web服务的数据库,如OracleDb、MySql或MsSQL。如果你需要一个将与应用捆绑在一起的数据库,并且这是一个完全不同的实现,那么只能使用SqlLite。感谢Diamond Mubaarak,当我测试它打印的代码时,我返回了它。这意味着它能工作。现在我想做的是,我将使用codename one中的TextField提供一个值,这个值将与mysql数据库中的值进行比较,如果该值存在,我将更新一个列为active。请告诉我如何将这个值传递到php页面。谢谢你的及时回复,你太棒了。再次感谢。先生,我会反馈给你的。对不起,打扰你了,戴蒙德·穆巴拉克先生。如果我使用这个url:private static final String DESTINATION_url=“”;它不会返回任何值。如果使用私有静态最终字符串DESTINATION_URL=“”;它为我返回值。我不知道出了什么问题