Android备忘录开发直接连接mysql同时连接sqlite 实现云备份

最近做android大作业 我打算做一个备忘录 但是老师要求要实现云备份功能
我理解的云备份就是备份到云端嘛 然后及时你程序卸载了 云端的数据还可以保留
首先 肯定要连接本地sqlite嘛 然后备份 按道理应该提交到服务器端 然后服务器跟数据库交互 但是搭建服务器还要用到php和ajax 时间可能来不及 我就想 能不能偷工减料一下android直接连接数据库呢? 经过我的尝试和csdn上大佬的引路 我发现真的可以耶!
但是会有两点要注意
1.在UI线程调用包含建立连接mysql语句的函数,得到的connection是null
2.直接将url,username,password 放在代码中,会被反编译看到
鉴于我这个只是个备忘录 而且我是个新手 就先不要求那么多啦~
其中我参考的教程是这个Android Studio 直接连接mysql数据库
我遇到的问题就是报错报错空指针异常的可以看看这篇
java.lang.NullPointerException: Attempt to invoke interface method ‘java.sql.Statement java.sql.Connection.createStatement()’ on a null object reference
就是我们的老朋友空指针异常呗!
到底是什么原因呢?其实啊是因为我的数据库没公开!!!(我当时觉得这个应该影响不大吧结果这个就是失败 的原因 )也就是上面那篇文章的最后一步!提醒一下 下面这个to后面是两个空格!!!
下面就可以将sqlite存储的备份到mysql啦!
Android备忘录开发直接连接mysql同时连接sqlite 实现云备份_第1张图片

但是出现了一个小问题就是每次备份 之前有的不会被覆盖
而是重复添加到mysql数据库里了 这会导致数据冗余
怎么办呢?
可以添加表之前清空表嘛!注意不是删除(drop table)而是清空(truncate table )
举个栗子~如想要清空note表的内容而不删除表 就 truncate table note 即可
Android备忘录开发直接连接mysql同时连接sqlite 实现云备份_第2张图片

嗒哒!成功啦!这样你比如说编辑了新的内容 在备份就是备份最新的啦!

后记:毕竟这些都是模拟机,跑在真机上才算数嘛!我就试了试真机连接,我的想法是用我的手机开热点 让做测试的手机和电脑连接在同一局域网下,可是 手机却找不到电脑的ip,也就是没法备份到Mysql
这里的ip我是连接手机热点后用ipconfig查看的 找不到没道理呀
后来我上网看到说要电脑连上网后用电脑来开热点(就是飞行模式旁边那个) 我一试 嘿 您猜怎么着~ 成啦!

你可能感兴趣的:(Android开发)