Android 使用node.js 实现与PC端mysql数据库交互 - Go语言中文社区

Android 使用node.js 实现与PC端mysql数据库交互


1.先安装node.js和express框架

node.js安装:http://www.runoob.com/nodejs/nodejs-install-setup.html

express安装和使用方式:http://www.expressjs.com.cn/starter/installing.html  (建议全部看完,很容易上手)

安装有时候会遇到一些问题,试着百度解决

需要用到的框架安装

npm install express   安装express

npm install mysql    安装mysql

2.安装数据库

我使用的是mysql数据库,其他的数据库也可以,只不过在node.js中连接,操作数据库的方式不同,大同小异。


3.先搭建一个服务器和连接数据库


新建getdate.js    实现数据库的查询的操作

var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var connection = mysql.createConnection({ //配置你本地的数据库
host : 'localhost',
user : 'root',
password : '88888888',
database : 'test'
});

// 该路由使用的中间件
router.use(function timeLog(req, res, next) {
console.log('Time: ', Date.now()); //获取当前的操作时间 可以取消
next();
});

router.get('/', function(req, res) {
res.send('Get Data');
});

router.get('/:id', function(req, res) {
//connection.connect();
var sql = 'SELECT * FROM test_01 where A = '+req.params.id;
console.log('ID:', req.params.id); //搜索的ID
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
console.log('--------------------------SELECT----------------------------');
console.log(result);
console.log('------------------------------------------------------------nn');
// connection.end();
res.send(result);
});
});

module.exports = router;



再新建一个express-mysql.js

var express = require('express');
var app = express();
var mysql = require('mysql');

var GetDate = require('./getdate');

var connection = mysql.createConnection({ //配置你本地的数据库
host : 'localhost',
user : 'root',
password : 88888888
database : 'test'
});

connection.connect(); //一直开启连接

var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;

console.log('Example app listening at http://%s:%s', host, port);
});

app.use('/get',GetDate); //此处是express的中间件,看过express的教程应该很快就懂

在此处已经算完成了大部分后端的大部分操作了,现在可以访问

http://localhost:3000/get/1     来查找数据库test_01表中A=1的数据了


5.实际效果如图所示:

test_01表



通过访问http://localhost:3000/get/1  的效果图

express框架可以主动把放回的数据转化为JSON


6.接下来就是实现安卓部分的代码了,其实也只要很简单的通过HTTP来访问这个URL就可以实现了

以下是关键代码

    private void sendRequestWithOkHttp() {   //okhttp  get方式获取服务器数据
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    OkHttpClient client = new OkHttpClient();
                    Request request = new Request.Builder()
                            // 指定访问的服务器地址是电脑本机
                            .url("http://192.168.134.2:3000/get/1")
                          //  .url("http://10.0.2.2/get_data.json")
                            .build();
                    Response response = client.newCall(request).execute();
                    String responseData = response.body().string();
                    parseJSONWithGSON(responseData);
                    showResponse(responseData);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
private void showResponse(final String response) {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            // 在这里进行UI操作,将结果显示到界面上
            responseText.setText(response);
        }
    });
}
服务器POST的方法大同小异



版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/runanzhuan5824/article/details/79591867
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 17:28:55
  • 阅读 ( 989 )
  • 分类:前端

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢