android能使用mysql吗?


当前第2页 返回上一页

三.建立数据库连接

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_jdbc);

    new Thread(runnable).start();

}

Handler myHandler=new Handler(){

    public void handleMessage(Message msg) {

        // TODO Auto-generated method stub

        super.handleMessage(msg);

        Bundle data=new Bundle();

        data=msg.getData();

        //System.out.println("id:"+data.get("id").toString());    //输出第n行,列名为“id”的值

        Log.e("TAG","id:"+data.get("id").toString());

       TextView tv= (TextView) findViewById(R.id.jdbc);

        //System.out.println("content:"+data.get("content").toString());

    }

};

Runnable runnable=new Runnable() {

    private Connection con = null;

    @Override

    public void run() {

        // TODO Auto-generated method stub

        try {

            Class.forName("com.mysql.jdbc.Driver");

            //引用代码此处需要修改,address为数据IP,Port为端口号,DBName为数据名称,UserName为数据库登录账户,Password为数据库登录密码

            con =

                    //DriverManager.getConnection("jdbc:mysql://192.168.1.202:3306/b2b", "root", "");

            DriverManager.getConnection("jdbc:mysql://http://192.168.1.100/phpmyadmin/index.php:8086/b2b",

                    UserName,Password);

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        try {

            testConnection(con);    //测试数据库连接

        } catch (java.sql.SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

    public void testConnection(Connection con1) throws java.sql.SQLException {

        try {

            String sql = "select * from ecs_users";        //查询表名为“oner_alarm”的所有内容

            Statement stmt = con1.createStatement();        //创建Statement

            ResultSet rs = stmt.executeQuery(sql);          //ResultSet类似Cursor

            //<code>ResultSet</code>最初指向第一行

            Bundle bundle=new Bundle();

            while (rs.next()) {

                bundle.clear();

                bundle.putString("id",rs.getString("userid"));

                //bundle.putString("content",rs.getString("content"));

                Message msg=new Message();

                msg.setData(bundle);

                myHandler.sendMessage(msg);

            }

            rs.close();

            stmt.close();

        } catch (SQLException e) {

        } finally {

            if (con1 != null)

                try {

                    con1.close();

                } catch (SQLException e) {}

        }

    }

};

注意:

在Android4.0之后,不允许在主线程中进行比较耗时的操作(连接数据库就属于比较耗时的操作),需要开一个新的线程来处理这种耗时的操作,没新线程时,一直就是程序直接退出,开了一个新线程处理直接,就没问题了。

当然,连接数据库是需要网络的,千万别忘了添加访问网络权限:

1

<uses-permission android:name=”android.permission.INTERNET”/>

四.bug点

1.导入的jar包一定要正确

2.连接数据库一定要开启新线程

3.数据库的IP一定要是可以ping通的,局域网地址手机是访问不了的

4.数据库所在的服务器是否开了防火墙,阻止了访问

以上就是android能使用mysql吗?的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql中关于表,列以及库的增删改查问题总结(收藏)

mysql数据库用户权限管理

解决mysql收缩事务日志及问题解决办法

mysql如何记录耗时的sql语句实例详解

mysql 出现1062错误怎么办

mysql存储引擎的作用

mysqld.exe有什么用

绿色版 mysql 安装配置

mysql数据库聚合查询和联合查询操作

mysql数据库进行连接的简单示例代码

更多相关阅读请进入《Android》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...