码迷,mamicode.com
首页 > 移动开发 > 详细

Android数据库:通过JDBC直接访问MySql

时间:2014-11-13 13:02:49      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:android访问mysql   数据库   

    关于通过JDBC访问本地MySql数据库的一篇文章http://blog.csdn.net/leelit/article/details/41044187,昨天学完JDBC访问本地数据库后就想,怎样可以远程访问数据库,真正使其成为一个服务器。后面又联想起自己之间做的一个单机版外卖订餐App,如果可以使其通过数据库来维护,那才是一款真正有意义的App。后面又搜了一下远程访问数据库的方法很快就找到了答案:http://www.cnblogs.com/xd502djj/archive/2011/04/01/2001826.html,接下来就是Android客户端了。

    一开始直接使用第一篇文章的方法,直接在Button里面就用JDBC的方法访问数据库,直接不行,因为没有添加网络权限!添加了网络权限后依然不可以,联想起最近学的计算机网络知识,很多情况下我们所在的都是区域网,而外网是无法直接访问区域网的,所以就简单地通过电脑发射WiFi然后手机连上让其处于同一网段,不过依然不行。后来,我想起Android在主线程是不可以进行网络访问的,所以直接给其套个线程,然后就OK了。(后来用2.3的手机测试不加线程是OK的,貌似主线程不能访问网络是高版本的事儿,当然如果加了线程全都可以,所以都加线程就好了)

要远程访问本机数据库的四个点:

1、设置数据库可远程访问

2、添加网络权限

3、在线程中访问数据库

4、手机连上电脑发射出来的WiFi使其处于同一网段

关键代码:这里不作注释了,直接参见第一篇文章

button.setOnClickListener(new OnClickListener() {

	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				JdbcUtils ju = new JdbcUtils();

				String sql1 = "select * from userinfo";
				try {
					List<Map<String, Object>> list = ju.query(sql1,
							null);
					System.out.println(list);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}).start();

	}
});
操作结果:

1、一开始数据库userinfo表的数据

bubuko.com,布布扣

2、Android端查询

bubuko.com,布布扣

3、直接在navicat数据库管理工具删除一条记录

bubuko.com,布布扣

4、再次查询

bubuko.com,布布扣



    一开始别人说这种方法是不可以的,必须通过一个WebServer来作中转,通过搭建一个服务器,在服务器上访问MySql,例如可以用PHP+MySql做服务器端,PHP将MySql中的数据处理成Json,然后Android通过http协议访问服务器得到Json数据。当然直接用JDBC来访问是不好的,因为别人一反编译,数据库的账号密码不全出来了,这样是不安全的,不过作为学习还是可以滴。

Android数据库:通过JDBC直接访问MySql

标签:android访问mysql   数据库   

原文地址:http://blog.csdn.net/leelit/article/details/41074395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!