背景
PC端的方案呢,也是用这样两种方案去访问的数据库,但是考虑到数据安全性,还是把Android和PC端的访问方式都定为了http访问PHP提交数据,然后在服务器端进行SQL指令的执行,再返回到PHP执行结果。
方法1:JDBC 连接
com.yy.eye.lib.DB.MySqlSetting mySqlSetting=mDBUtil.queryFirstOrDefault();
String url_1="jdbc:mysql://127.0.0.1:3306/dbName";
String UserName_1="root";
String pass_1="password";
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection cn= DriverManager.getConnection(url_1,UserName_1,pass_1);
String sql = "" ;#SQL语句
Statement st=(Statement)cn.createStatement();
result=st.execute(sql);
result=true;
cn.close();
st.close();
} catch (ClassNotFoundException e) {
result=false;
// e.printStackTrace();
} catch (SQLException e) {
//e.printStackTrace();
result=false;
}
方法2:PHP访问
try {
URL url = new URL("");#url地址包含sql语句
connection = (HttpURLConnection) url.openConnection();
//设置请求方法
connection.setRequestMethod("GET");
//设置连接超时时间(毫秒)
connection.setConnectTimeout(5000);
//设置读取超时时间(毫秒)
connection.setReadTimeout(5000);
//返回输入流
InputStream in = connection.getInputStream();
//读取输入流
reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
show(result.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (connection != null) {//关闭连接
connection.disconnect();
}
}
注意点:
无论是两种方式的任何一种,都需要访问网络,所以需要用到网络权限,需要提前在AndroidManifest.xml 中,添加
<uses-permission android:name="android.permission.INTERNET"/>
注意点2:
两种方式在JAVA中使用都需要在线程中运行,否则会出现app直接崩溃的现象。
new Thread(new Runnable() {
@Override
public void run() {
flag1= MySqlHelp.InsertSql(bc,lR,rR,dt);
Message msg = Message.obtain();
msg.what = 0;
Handler.sendMessage(msg);
}
}).start();
注意点3:
子线程中无法更新软件的UI界面,这点很重要,Toast提示框或者是其他的UI操作。都需要通过handle进行信息传递
private Handler Handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 0 ) {
Toast.makeText(ViewTest.this, "提交成功", Toast.LENGTH_SHORT).show();
InitEye();
}
}
};
注意点4:
如果通过jdbc的连接方式,需要用到mysql-connector-java-5.0.8-bin.jar,【下载地址】
Comments | NOTHING