由于是一名刚入门的大二学生,不大了解下面是根据源码改的native.js代码
function show() {
var main = plus.android.runtimeMainActivity();
var url="jdbc:mysql://rm-uf66kxh65t4sbn14bo.mysql.rds.aliyuncs.com:3306/first";
var user="root";
var password="20170627**hhu";
//"plusready"事件触发时执行plus对象的方法
// ...
// 导入要用到的类对象
var Dri= plus.android.importClass("java.sql.DriverManager");
var res = plus.android.importClass("java.sql.ResultSet");
var con= plus.android.importClass("com.mysql.jdbc.Connection");
var sta = plus.android.importClass("com.mysql.jdbc.Statement");
plus.android.importClass("com.mysql.jdbc.Driver");
var Dr=new Dri();
var conn= Dr.getConnection(url, user, password); //链接数据库
var stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
var rs=stmt.executeQuery("select name from student");
while(rs.next()) {
document.write(rs.getString(1));
document.write("<br >");
}
rs.close();
stmt.close();
conn.close();
}
这是源码
package com.hl;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class AndroidMsql extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sqlCon();
}
});
}
private void mSetText(String str){
TextView txt=(TextView)findViewById(R.id.txt);
txt.setText(str);
}
private void sqlCon(){
try {
//Class.forName("com.mysql.jdbc.Driver");
com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
} catch (Exception e) {
e.printStackTrace();
}
try {
//jdbc:mysql://Android默认电脑主机IP 10.0.2.2或者你电脑的IP
String url ="jdbc:mysql://rm-uf66kxh65t4sbn14bo.mysql.rds.aliyuncs.com:3306/first";//链接数据库语句
Connection conn= (Connection) DriverManager.getConnection(url,"root","20170627**hhu"); //链接数据库
Statement stmt=(Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select name from student";//查询user表语句
ResultSet rs=stmt.executeQuery(sql);//执行查询
StringBuilder str=new StringBuilder();
while(rs.next()){
str.append(rs.getString(1)+"\n");
}
mSetText(str.toString());
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2 个回复
1***@163.com (作者)
已经找到错误了 调用实例的方法要得到返回值应该用 plus.android.invoke
如果单纯调用方法 不用返回值 可用“.”.
错误 var conn= Dr.getConnection(url, user, password);
正确 var conn= plus.android.invoke( Dr,"getConnection", url,user,password);
赵梦欢 - 专注前端,乐于分享!
路子太野了,你这样直接把数据库的信息暴露出来,别人分分钟搞死你的数据库,你应该是后端写接口,前端通过ajax调用你的接口。