Android实现数据库链接

来源:互联网 发布:ubuntu删除桌面图标 编辑:程序博客网 时间:2024/06/05 02:03

用Android程序去直连MySQL数据库,觉得这样做不好,出于安全等方面考虑。数据库地址,用户名密码,查询SQL什么的都存在程序里,很容易被反编译等方法看到。
建议把表示层和数据层逻辑分开,数据层对应网页的表示层提供接口,同时在为Android手机端提供一个接口,简介访问数据库,这接口可以2端都保持一致,比如XML+RPC或者json等等,Android端也有现成的东西能直接用,既安全又省事。

 

 

android 链接MySQL数据库实例:
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");   } catch (Exception e) {   e.printStackTrace();  }  try {            String url ="jdbc:mysql://192.168.142.128:3306/mysql?user=zzfeihua&password=12345&useUnicode=true&characterEncoding=UTF-8";//链接数据库语句            Connection conn= (Connection) DriverManager.getConnection(url); //链接数据库            Statement stmt=(Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);            String sql="select * from user";//查询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();  } }}
不过eclipse老是提示:
warning: Ignoring InnerClasses attribute for an anonymous inner class that doesn't come with an associated EnclosingMethod attribute. (This class was probably produced by a broken compiler.)
不知道谁有解决的办法呢??
0 0
原创粉丝点击