Android数据库:通过JDBC直接访问MySql
2014-11-13 10:03
381 查看
关于通过JDBC访问本地MySql数据库的一篇文章/article/1904007.html,昨天学完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使其处于同一网段
关键代码:这里不作注释了,直接参见第一篇文章
1、一开始数据库userinfo表的数据
2、Android端查询
3、直接在navicat数据库管理工具删除一条记录
4、再次查询
一开始别人说这种方法是不可以的,必须通过一个WebServer来作中转,通过搭建一个服务器,在服务器上访问MySql,例如可以用PHP+MySql做服务器端,PHP将MySql中的数据处理成Json,然后Android通过http协议访问服务器得到Json数据。当然直接用JDBC来访问是不好的,因为别人一反编译,数据库的账号密码不全出来了,这样是不安全的,不过作为学习还是可以滴。
实例:一个登陆界面
一些处理:
没输入账号或密码按登陆,则提示输入账号密码;输入账号和密码按登陆后,根据where username = 'username'这个条件来查询数据库,没有此记录提示没有此账号;否则检查返回的List<Map<String,Object>>,若list.get(0).get(password).equals(password),登陆成功,否则提示密码错误。
按注册则进入另外一个Activity
没输入账号或密码按注册,则提示输入账号密码;输入账号和密码按注册后,根据where username = 'username'这个条件来查询数据库,若返回有记录,则提示当前账号存在;否则将该账号和密码作为一条记录添加到数据库中。这里不贴代码了,因为大家的数据库各不相同。不知道实际企业级开发的用户登陆流程是怎样的呢~~
一开始直接使用第一篇文章的方法,直接在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表的数据
2、Android端查询
3、直接在navicat数据库管理工具删除一条记录
4、再次查询
一开始别人说这种方法是不可以的,必须通过一个WebServer来作中转,通过搭建一个服务器,在服务器上访问MySql,例如可以用PHP+MySql做服务器端,PHP将MySql中的数据处理成Json,然后Android通过http协议访问服务器得到Json数据。当然直接用JDBC来访问是不好的,因为别人一反编译,数据库的账号密码不全出来了,这样是不安全的,不过作为学习还是可以滴。
实例:一个登陆界面
一些处理:
没输入账号或密码按登陆,则提示输入账号密码;输入账号和密码按登陆后,根据where username = 'username'这个条件来查询数据库,没有此记录提示没有此账号;否则检查返回的List<Map<String,Object>>,若list.get(0).get(password).equals(password),登陆成功,否则提示密码错误。
按注册则进入另外一个Activity
没输入账号或密码按注册,则提示输入账号密码;输入账号和密码按注册后,根据where username = 'username'这个条件来查询数据库,若返回有记录,则提示当前账号存在;否则将该账号和密码作为一条记录添加到数据库中。这里不贴代码了,因为大家的数据库各不相同。不知道实际企业级开发的用户登陆流程是怎样的呢~~
相关文章推荐
- Android通过oracle的jdbc驱动直接访问oracle数据库
- Android采用jdbc直连MySQL,实现虚拟机和手机访问数据库
- Android 使用MySQL直接访问数据库
- android 4.0 app 通过 jdbc 访问 Mysql
- android 通过jdbc直接连接mysql
- JMeter 通过 JDBC 访问 Oracle 和 MySQL 的步骤及实例
- 跳过hibernate获取DBConnection工具类,通过JDBC API访问数据库
- 在Eclipse中封装程序通过JDBC访问MySQL的代码
- 怎么通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库?
- JDBC访问数据库Oracle, MySQL经验总结(一)
- 通过 JDBC 访问数据库
- 如何解决JMeter通过JDBC 访问Oracle 和MySQL的问题
- Java通过JDBC访问MYSQL示例
- 通过JDBC访问数据库的基本步骤
- 通过JDBC API访问数据库的jsp范例
- 使用servlet,jdbc将mysql中数据显示在jsp页面中,且实现直接删除数据库数据
- 怎么通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库?
- 直接通过 ODBC API 访问 SQL 数据库
- 如何解决 JMeter 通过 JDBC 访问 Oracle 和 MySQL 的问题 (留言中有 Test Plan 实例下载)
- JMeter 通过 JDBC 访问 Oracle 和 MySQL (转自JACKEI)