sql文件一般不应该由Android直接执行的,正常应该是先转成db文件直接放入Android中,Android只需执行一些简单sql命令。

但有时有这样的需求怎么办呢,比如你数据库是上个版本放进的,这个版本的更新就是一个sql文件,你重新放一个数据库那用户数据都没了。

这个还是很简单的,从assets读取到sql文件,转成String,获取writeableDatabase,然后执行sql就行了。

[java]  view plain  copy
  1. public class MainActivity extends Activity {
  2. /**
  3. * 按行读取txt
  4. *
  5. * @param is
  6. * @return
  7. * @throws Exception
  8. */
  9. private String readTextFromSDcard(InputStream is) throws Exception {
  10. InputStreamReader reader = new InputStreamReader(is);
  11. BufferedReader bufferedReader = new BufferedReader(reader);
  12. StringBuffer buffer = new StringBuffer("");
  13. String str;
  14. while ((str = bufferedReader.readLine()) != null) {
  15. buffer.append(str);
  16. buffer.append("\n");
  17. }
  18. return buffer.toString();
  19. }
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. SQLiteDatabase db = new DatabaseHelper(this, "my.db")
  25. .getWritableDatabase();
  26. try {
  27. InputStream in = getAssets().open("garden.sql");
  28. String sqlUpdate = null;
  29. try {
  30. sqlUpdate = readTextFromSDcard(in);
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. String[] s = sqlUpdate.split(";");
  35. for (int i = 0; i < s.length; i++) {
  36. if (!TextUtils.isEmpty(s[i])) {
  37. db.execSQL(s[i]);
  38. }
  39. }
  40. in.close();
  41. } catch (SQLException e) {
  42. } catch (IOException e) {
  43. }
  44. }
  45. }

只有一个要注意的地方,执行sql时只会执行到分号的位置,所以要按分号分割,执行多次。执行完后在/data/data/packageName下面就可以看到db文件了。

Android读取sql文件并导入数据库相关推荐

  1. php调用sql数据库代码怎么写,PHP读取SQL文件并导入数据库(示例)

    /** * 读取 sql 文件并写入数据库 * @version 1.01 demo.php * @author xingshaocheng * @edit: www.jbxue.com */ cla ...

  2. java解析csv文件写入mysql_java读取cvs文件并导入数据库

    本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下 首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains("匹配字段" ...

  3. 在navicat运行SQL文件无法导入数据库数据的一个解决办法

    快速解决 使用navicat不能直接导入数据,可以使用命令行的方式试试. mysql -uroot -proot create database kpl_test use kpl_test sourc ...

  4. sql文件怎么导入数据库mysql_sql文件怎么用 导入数据库文件

    展开全部 其实导入的方法很简单,可32313133353236313431303231363533e78988e69d8331333365633836以采用工具导入和只用mysql命令界面导入两种方式 ...

  5. python读取sql文件,批量操作数据库

    import pymysql#连接数据库 def getConnect():conn = pymysql.connect(host='1.1.1.1',#数据库ipport=3306,#数据库port ...

  6. exls导入数据库 php_PHP读取excel文件并导入数据库

    PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.下面是PHPExcel读取的使用教程: 1.首先下载PHPExcel 2.下载好文件 ...

  7. linux mysql复制一个表结构图_详解Windows和Linux下从数据库导出表结构,以及Linux下如何导入.sql文件到MySQL数据库...

    本文首先讲解window下如何使用Navicat for MySQL导出表. 1.如下图所示,目标数据库是mydatabase,数据库中有四张表. 2.选中该数据库,右键--数据传输. 3.左边可以选 ...

  8. 使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案

    使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案 参考文章: (1)使用命令导入sql文件到mysql数据库时报Failed to open file错 ...

  9. 怎么将导出的sql文件再次导入到数据库?

    怎么将导出的sql文件再次导入到数据库? 数据库用起来很方便,可是更换电脑的时候海量数据怎么带走也是个麻烦,导出为sql文件增强了数据的可移植性.sql文件导出后怎么导入数据库呢?本文以Navicat ...

最新文章

  1. JSP错误页面的处理和exception对象
  2. 如何有效地防止网站和手机APP的数据被采集?
  3. Linux下创建用户、切换用户、删除用户
  4. 聊一聊双十一背后的技术 - 不一样的秒杀技术, 裸秒
  5. android webview 重定向 goback,Android WebView 网址重定向影响 goBack
  6. 从qq服务器删除误收邮件,如何恢复从qq邮箱删除的电子邮件
  7. 电商促销素材|设计简洁,适合小清新文艺气质的你!
  8. 温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)
  9. javascript垃圾回收机制
  10. Java新职篇:使用程序块
  11. linux内核容器的打包,简年6:一个关于 Linux 容器化的脑洞
  12. “软件工程造价师”和“软件造价评估师”有什么区别?
  13. Win10加Ubuntu20.04双系统安装教程
  14. 糖友日常生活需要注意什么
  15. 【论文阅读】23-Robust Feature Matching Using Spatial Clustering With Heavy Outliers
  16. 计算机ms高级应用科目一 科目二考什么,科目一、科目二、科目三、科目四都考什么?全都在这儿了!...
  17. 高通使用/system/bin/r读取msm8916的gpio配置
  18. 培养孩子讲故事的心得
  19. 【转】Java面试题合集
  20. 《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看

热门文章

  1. 我的世界服务器修改圈地大小,我的世界圈地大小限制设置
  2. Linux 自动化部署安装 《PXE网络无人值守安装 》
  3. 如何选择合适的高尔夫球杆?
  4. 如何将多张图片制作成GIF表情包
  5. 计算机专业的口号运动会四字,计算机运动会口号
  6. 一些关于程序员的搞笑图片和故事
  7. linux-lamp-微信小程序-ego篇一
  8. Lazada出单之后卖家发货操作流程发货异议解答
  9. mpvue下小程序云开发实现余额提现订阅消息提醒
  10. 【由浅入深学Python】01快速入门