Android读取sql文件并导入数据库
sql文件一般不应该由Android直接执行的,正常应该是先转成db文件直接放入Android中,Android只需执行一些简单sql命令。
但有时有这样的需求怎么办呢,比如你数据库是上个版本放进的,这个版本的更新就是一个sql文件,你重新放一个数据库那用户数据都没了。
这个还是很简单的,从assets读取到sql文件,转成String,获取writeableDatabase,然后执行sql就行了。
- public class MainActivity extends Activity {
- /**
- * 按行读取txt
- *
- * @param is
- * @return
- * @throws Exception
- */
- private String readTextFromSDcard(InputStream is) throws Exception {
- InputStreamReader reader = new InputStreamReader(is);
- BufferedReader bufferedReader = new BufferedReader(reader);
- StringBuffer buffer = new StringBuffer("");
- String str;
- while ((str = bufferedReader.readLine()) != null) {
- buffer.append(str);
- buffer.append("\n");
- }
- return buffer.toString();
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- SQLiteDatabase db = new DatabaseHelper(this, "my.db")
- .getWritableDatabase();
- try {
- InputStream in = getAssets().open("garden.sql");
- String sqlUpdate = null;
- try {
- sqlUpdate = readTextFromSDcard(in);
- } catch (Exception e) {
- e.printStackTrace();
- }
- String[] s = sqlUpdate.split(";");
- for (int i = 0; i < s.length; i++) {
- if (!TextUtils.isEmpty(s[i])) {
- db.execSQL(s[i]);
- }
- }
- in.close();
- } catch (SQLException e) {
- } catch (IOException e) {
- }
- }
- }
只有一个要注意的地方,执行sql时只会执行到分号的位置,所以要按分号分割,执行多次。执行完后在/data/data/packageName下面就可以看到db文件了。
Android读取sql文件并导入数据库相关推荐
- php调用sql数据库代码怎么写,PHP读取SQL文件并导入数据库(示例)
/** * 读取 sql 文件并写入数据库 * @version 1.01 demo.php * @author xingshaocheng * @edit: www.jbxue.com */ cla ...
- java解析csv文件写入mysql_java读取cvs文件并导入数据库
本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下 首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains("匹配字段" ...
- 在navicat运行SQL文件无法导入数据库数据的一个解决办法
快速解决 使用navicat不能直接导入数据,可以使用命令行的方式试试. mysql -uroot -proot create database kpl_test use kpl_test sourc ...
- sql文件怎么导入数据库mysql_sql文件怎么用 导入数据库文件
展开全部 其实导入的方法很简单,可32313133353236313431303231363533e78988e69d8331333365633836以采用工具导入和只用mysql命令界面导入两种方式 ...
- python读取sql文件,批量操作数据库
import pymysql#连接数据库 def getConnect():conn = pymysql.connect(host='1.1.1.1',#数据库ipport=3306,#数据库port ...
- exls导入数据库 php_PHP读取excel文件并导入数据库
PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.下面是PHPExcel读取的使用教程: 1.首先下载PHPExcel 2.下载好文件 ...
- linux mysql复制一个表结构图_详解Windows和Linux下从数据库导出表结构,以及Linux下如何导入.sql文件到MySQL数据库...
本文首先讲解window下如何使用Navicat for MySQL导出表. 1.如下图所示,目标数据库是mydatabase,数据库中有四张表. 2.选中该数据库,右键--数据传输. 3.左边可以选 ...
- 使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案
使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案 参考文章: (1)使用命令导入sql文件到mysql数据库时报Failed to open file错 ...
- 怎么将导出的sql文件再次导入到数据库?
怎么将导出的sql文件再次导入到数据库? 数据库用起来很方便,可是更换电脑的时候海量数据怎么带走也是个麻烦,导出为sql文件增强了数据的可移植性.sql文件导出后怎么导入数据库呢?本文以Navicat ...
最新文章
- JSP错误页面的处理和exception对象
- 如何有效地防止网站和手机APP的数据被采集?
- Linux下创建用户、切换用户、删除用户
- 聊一聊双十一背后的技术 - 不一样的秒杀技术, 裸秒
- android webview 重定向 goback,Android WebView 网址重定向影响 goBack
- 从qq服务器删除误收邮件,如何恢复从qq邮箱删除的电子邮件
- 电商促销素材|设计简洁,适合小清新文艺气质的你!
- 温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)
- javascript垃圾回收机制
- Java新职篇:使用程序块
- linux内核容器的打包,简年6:一个关于 Linux 容器化的脑洞
- “软件工程造价师”和“软件造价评估师”有什么区别?
- Win10加Ubuntu20.04双系统安装教程
- 糖友日常生活需要注意什么
- 【论文阅读】23-Robust Feature Matching Using Spatial Clustering With Heavy Outliers
- 计算机ms高级应用科目一 科目二考什么,科目一、科目二、科目三、科目四都考什么?全都在这儿了!...
- 高通使用/system/bin/r读取msm8916的gpio配置
- 培养孩子讲故事的心得
- 【转】Java面试题合集
- 《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看