Android系列之SQLite与Android Studio的数据交互
来源:互联网 发布:seo教学 编辑:程序博客网 时间:2024/06/13 01:08
其实是使用SQLite和Studio实现数据交互并不难,那么,我们直接上解释和代码了:
一、把db放在res的下方创一个raw文件夹,里面用来放db
二、创一个DbHelper类,实际代码如下:
package com.laci.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;/** * Created by Laci on 2017/6/25. */public class DbHelper extends SQLiteOpenHelper{ /** * * @param context 上下文 * @param name 数据库的名字 * @param factory 数据库工厂,null * @param version 数据库的版本 */ public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
三、然后再相同的目录下创一个DbManager类,就可以了
package com.laci.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.os.Environment;import com.zking.laci.android_project.R;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;/** * Created by Laci on 2017/6/27. */public class DbManager { public static final String DB_NAME = "wenwen.db"; //数据库名字 public static final String PACKAGE_NAME ="com.zking.laci.android_project";//包名 public static final String DB_PATH = "/data" + Environment.getDataDirectory().getAbsolutePath() + "/" + PACKAGE_NAME; //数据库的绝对路径( /data/data/com.*.*(package name)) private SQLiteDatabase db; private Context context; public DbManager(Context context) { this.context = context; } //对外提供的打开数据库接口 public void openDataBase() { this.db = this.openDataBase(DB_PATH + "/databases"); } //获取打开后的数据库 public SQLiteDatabase getDb() { return this.db; } // 本地打开数据方法 private SQLiteDatabase openDataBase(String filePath) { try { File file = new File(filePath); if (!file.exists()) { //判断文件是否存在 //通过输入流和输出流,把数据库拷贝到"filePath"下 file.mkdir(); File file2=new File(filePath+"/"+DB_NAME); if (!file2.exists()) { InputStream is = context.getResources().openRawResource(R.raw.wenwen);//获取输入流,使用R.raw.test资源 FileOutputStream fos = new FileOutputStream(file2); byte[] buffer = new byte[1024]; int readCount; while ((readCount = is.read(buffer)) > 0) { fos.write(buffer, 0, readCount); } fos.close(); is.close(); } }//打开数据库 SQLiteDatabase db =new DbHelper(context,"wenwen.db",null,2).getWritableDatabase(); return db; } catch (Exception e) { e.printStackTrace(); } return null; } //关闭数据库 public void closeDataBase() { if(this.db!=null) db.close(); }}
四、最后在你第一个开始运行的activity中,写下以下代码就完成交互了
DbManager dbManager=new DbManager(getApplicationContext()); dbManager.openDataBase();
阅读全文
0 0
- Android系列之SQLite与Android Studio的数据交互
- Android系列之SQLite与Android Studio的数据交互
- Android系列之SQLite与Android Studio的数据交互
- SQLite与Android的数据交互
- SQlite与android 的数据交互 (android 项目心得三)
- Unity 与 Android (Android Studio)的交互
- Unity 与 Android (Android Studio)的交互
- Android进阶之Fragment与Activity之间的数据交互
- Unity 与 Android (Android Studio)的交互问题研究 (一)
- Android开发系列之SQLite
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android WebView与JS的数据交互
- Java注解之Retention、Documented、Inherited介绍
- 手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例
- 编程学习感受
- 设计模式(十)facade门面模式
- LInux的Posix的线程控制
- Android系列之SQLite与Android Studio的数据交互
- 详解JDK 5 Annotation 注解之@Target的用法介绍
- 网络中是通过硬件地址找到目的主机的,那为什么还要有IP地址呢?
- android小笔记
- 对于SQL中COUNT(1)和COUNT(*)执行效率上的误解
- 《李航:统计学习方法》--- K近邻算法实现: kd 树
- Servlet基础笔记_17-07-04
- Exact 4SAT问题是NP完全的证明
- 将css放在头部,js放在尾部可以优化页面???