Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • android 链接mysql数据库

    post by onelong / 2010-8-30 15:09 Monday [android]

    android下可以连接远程数据的,不过你远程的数据库服务的要开启远程,具体设置http://www.ways2u.com/knowledge/?post=142

    Java利用JDBC访问数据库的编程步骤
    http://www.ways2u.com/?post=76

    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.)
    不知道谁有解决的办法呢??
     

    附件下载:
    AndroidMsql.rar 785.5KB

    标签: 数据库 android
    引用地址:
     

    评论:

    1. p1e2a3r123
      你好,我用你的AndroidMsql修改一下的确能连接我的数据库,可是我新建一个project之后复制你的androidmsql里面的文件内容却无法实现连接数据库呢? 为什么呢?
      博主回复:不知道呢
    2. 小帝
      数据库连接成功的标准是什么?
    3. zhang
      就是说开发andriond是用到数据库了,还必须在开发一个网页吗
      博主回复:用http 接口比较好
    4. krain
      添加了jar包  也不能运行啊
    5. yu
      楼主啊,要加mySQL的驱动的吧。可是我一加就报错啊。
      2012-04-01 18:00:22 - Sample12_11]
      UNEXPECTED TOP-LEVEL EXCEPTION:
      com.android.dx.util.ExceptionWithContext
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:340)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:131)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:85)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.command.dexer.Main.processClass(Main.java:299)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.command.dexer.Main.processFileBytes(Main.java:278)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.command.dexer.Main.access$100(Main.java:56)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
      [2012-04-01 18:00:22 - Sample12_11]     at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)

      [2012-04-01 18:00:22 - Sample12_11]     ... 31 more
      ...while processing reuseAndReadPacket (Lcom/mysql/jdbc/Buffer;I)Lcom/mysql/jdbc/Buffer;
      ...while processing com/mysql/jdbc/MysqlIO.class

      [2012-04-01 18:00:22 - Sample12_11] 1 error; aborting
      [2012-04-01 18:00:22 - Sample12_11] Conversion to Dalvik format failed with error 1


      求解决啊!!!急急急急!!!
      博主回复:这个好像不能用了
    6. khowarizmi
      在模拟机上运行成功了,但是生成apk放在手机上就不行了。。请问博主应该怎么办呢?
    7. LOVE520
      楼主我最近在搞这个……想跟你交流一下……
      博主回复:一般人都是不会自己链接数据库服务器的!!android-web服务器-数据库是高效的做法
    8. gaoboss
      报错:classNotFoundException  已导入jar文件,但依然报这个错 楼主能否发个简单测试通过的源码给我  gxf341@sina.com
      博主回复:这个好久没弄了!!没有实在的意义呀
    9. 方法
      模拟器可以   真机测试失败!
      博主回复:这样我就不知道啦
    10. wang
      ClassNOtFoundException.com.mysql.jdbc.driver
      博主回复:你没有导入呀
    11. Ragnarok
      经试验此方法的确不行。。。
      博主回复:我之前测试是没有问题的!!
    12. chen
      博主你好,我用这个程序在虚拟机上跑会强制关闭,请问是为什么?
    13. leepood
      android链接mysql效率应该不高吧,jdbc本身就是为计算机设计的不是为移动设备设计的,我还是觉得用android去访问web服务,中间做个中转.
      博主回复:我相当同意你看法!!
    14. hlt0407
      楼主能给我讲讲远程连接sql2000吗?如果可以给我写邮件吧,hlt0407@qq.com  不胜感激
      博主回复:这个我没有搞过!!不好意思
    15. dd
      这个帖子就是扯淡
      http://stackoverflow.com/questions/1728476/does-android-support-jdbc
      博主回复:不懂就不要乱说啦!!mysql,又不是sqlite
    16. zhang
      您好,想问一下,你的这个程序是在Android虚拟机里跑通,还是在真实设备中运行成功了?
      我编译里你的例子,在虚拟机中可以运行,可是吧apk放到设备里,始终提示解包错误,郁闷,希望给答复,谢谢
      博主回复:我还是通过http接口来实现这种服务会安全稳定吧!!
    17. xxh
      JDBC驱动编译错误···博主确定能成功?
      博主回复:我的可以成功呀!!不过就是比较慢而已!!
    18. ziao
      想請問一下,JDBC是要擺哪兒呢?
      博主回复:你到网上下载一个类库添加到项目中就可以了,不需要放在特定的位置的,怎样在eclipse里添加jar网上有很多教程,而且蛮简单的!!!

    我要评论