androidstudio中外部数据库的导入
来源:互联网 发布:u盘ubuntu分区教程 编辑:程序博客网 时间:2024/06/05 19:40
由于工具的不同,在androidstudio中导入外部数据库也是有所不同,下面教大家怎么在as中导入db,注意往下看
1.切换project视图 src->main->新建assets
至于为什么,往下看:
2.创建DBMain继承自
SQLiteOpenHelper
public class DBMain extends SQLiteOpenHelper { private static String DB_PATH= "data/data/com.safephone.lwp.importdatabase/databases/"; private static String DB_NAME = "ii"; private SQLiteDatabase dbObj; private final Context context; public DBMain(Context context) { super(context, DB_NAME , null, 3); this. context = context; } public void createDB() throws IOException { this.getReadableDatabase(); try { copyDB(); } catch (IOException e) { throw new Error("Error copying database"); } } private boolean checkDB(){ SQLiteDatabase checkDB = null; try{ String path = DB_PATH + DB_NAME; checkDB = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY); if (checkDB!=null) { Cursor c= checkDB.rawQuery("SELECT * FROM bank", null); Log.i("Cursor.......",c.getString(0)); c.moveToFirst(); String contents[]=new String[80]; int flag=0; while(! c.isAfterLast()) { String temp=""; String s2=c.getString(0); String s3=c.getString(1); String s4=c.getString(2); temp=temp+"\n Id:"+s2+"\tType:"+s3+"\tBal:"+s4; contents[flag]=temp; flag=flag+1; Log.i("DB values.........",temp); c.moveToNext(); } } else { return false; } }catch(SQLiteException e){ e.printStackTrace(); } if(checkDB != null){ checkDB.close(); } return checkDB != null ? true : false; } public void copyDB() throws IOException{ try { InputStream ip = context.getAssets().open(DB_NAME+".db"); Log.i("Input Stream....",ip+""); String op= DB_PATH + DB_NAME ; OutputStream output = new FileOutputStream( op); byte[] buffer = new byte[1024]; int length; while ((length = ip.read(buffer))>0){ output.write(buffer, 0, length); Log.i("Content.... ",length+""); } output.flush(); output.close(); ip.close(); } catch (IOException e) { Log.v("error", e.toString()); } } public void openDB() throws SQLException { String myPath = DB_PATH + DB_NAME; dbObj = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE); Log.i("open DB......",dbObj.toString()); } @Override public synchronized void close() { if(dbObj != null) dbObj.close(); super.close(); } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}3.Mainactivity的oncreate方法中
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DBMain db; db = new DBMain(this); try { db.createDB(); } catch (IOException ioe) { throw new Error("Database not created...."); } try { db.openDB(); }catch(SQLException sqle){ throw sqle; } SQLiteDatabase db1; db1=openOrCreateDatabase("ii",SQLiteDatabase.CREATE_IF_NECESSARY,null); Cursor c= db1.rawQuery("SELECT * FROM bank",null); c.moveToFirst(); String temp=""; while(! c.isAfterLast()) { String s2=c.getString(0); String s3=c.getString(1); String s4=c.getString(2); temp=temp+"\n Id:"+s2+"\tType:"+s3+"\tBal:"+s4; c.moveToNext(); }}
ok,大功告成,觉得可以请点赞
1 0
- androidstudio中外部数据库的导入
- 导入的Eclipse项目到AndroidStudio中
- 导入的Eclipse项目到AndroidStudio中
- AndroidStudio中导入Eclipse的库项目
- AndroidStudio中导入Module的相关问题
- android导入外部已存在的数据库
- android导入外部数据库的使用
- android外部数据库的导入使用
- C#导入Excel时到数据库,报外部数据库驱动程序中(1)的意外错误
- android 导入外部数据库
- android 导入外部数据库
- mysql导入外部数据库
- android 导入外部数据库
- android导入外部数据库
- Android导入外部数据库
- Android导入外部数据库
- android导入外部数据库
- 如何导入外部数据库
- 健康录a
- 等差数列前n项和
- 51单片机作业
- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
- 64. Minimum Path Sum
- androidstudio中外部数据库的导入
- Leetcode刷题记—— 33. Search in Rotated Sorted Array(在翻转顺序的数组里查找)
- 输入一个整数,求该整数的二进制中1的个数,并输出
- Android动画
- 《PCL点云库学习&VS2010(X64)》Part 22 激光雷达点云数据处理相关算法库收集
- 面试题
- Python 之ConfigParser
- latex 中,代码注释含有中文和英文,英文会跑后面的问题。
- 内核字符串与链表