学android已经有大概一周时间了吧 ,总感觉自己基础不怎么好,只能通过一点一点积累着敲来巩固平常的知识,有的时候就先不封装的敲一遍,再封装上,有些语句真的记不住,虽然知道他是什么意思,于是乎就反复的敲着,加油吧!少年,下面进入正题吧

  DBConn.java类 主要是将raw写入到DDMS里的data/data/xxx包/下,代码如下:

  

package com.tp.soft.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream; import com.example.dbcity.R; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment; public class DBConn {
private static String DB_NAME = "test.db";
private static String PACKAGE = "com.example.dbcity";
private static String PATH = "/data" +
Environment.getDataDirectory().getPath()+
File.separator + PACKAGE;
private Context context;
private SQLiteDatabase database;
public DBConn(Context context){
this.context = context;
} public static final DBConn getInstance(Context context){
DBConn conn = new DBConn(context);
return conn;
}
public SQLiteDatabase getDb(){
database = openDB(PATH + File.separator + DB_NAME);
return database;
} public SQLiteDatabase openDB(String dbFile){
try{
if(!isExitFile(dbFile)){
InputStream is = context.getResources().openRawResource(R.raw.test);
FileOutputStream fos = new FileOutputStream(dbFile);
byte[] buffer = new byte[];
int len = -;
while((len = is.read(buffer)) != -){
fos.write(buffer, , len);
}
is.close();
fos.close();
} database = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
return database;
}catch (Exception e) {
e.printStackTrace();
return null;
}
} public boolean isExitFile(String path){
File file = new File(path);
return file.exists();
}
}

DBManage.java主要是对数据库的封装,目前只做了个查询,待后期完善吧,代码如下:

package com.tp.soft.util;

import java.util.ArrayList;
import java.util.List; import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; public class DBManage {
private SQLiteDatabase db; public DBManage(Context context) {
DBConn conn = DBConn.getInstance(context);
db = conn.getDb();
} public List<String> queryData(String sql, String[] selectionArgs, String property){
Cursor cursor = null;
List<String> list = new ArrayList<String>();
try{
cursor = db.rawQuery(sql, selectionArgs);
while(cursor.moveToNext()){
String str = cursor.getString(cursor.getColumnIndex(property));
list.add(str);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
if(null != cursor){
cursor.close();
}
}
return list;
} }

主入口就是一个下拉列表的显示,然后就是调用sqlite数据库了,部分代码如下:

proSelect = (Spinner) findViewById(R.id.proSelect);
DBManage dbManage = new DBManage(this);
List<String> proList = dbManage.queryData("select * from au_user", null, "username");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_gallery_item, proList);
proSelect.setAdapter(arrayAdapter);

总结一句话,其实代码敲多了 才去想怎么敲,而不是一点都没敲就去想如何将语句敲到最好 我觉得这个是不可能的,菜鸟自学路程。。。

  

sqlite与android交互 (封装)的更多相关文章

  1. [Unity3D]Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

  2. Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

  3. 利用SQLite在android上实现增删改查

    利用SQLite在android上实现增删改查 方法: 一.直接利用database.execSQL()方法输入完整sql语句进行操作 这种方法适用于复杂的sql语句,比如多表查询等等 这里适合于增删 ...

  4. Android 谈谈封装那些事 --BaseActivity 和 BaseFragment(二)

      1.前言 昨天谈了BaseActivity的封装,Android谈谈封装那些事--BaseActivity和BaseFragment(一)有很多小伙伴提了很多建议,比如: 通用标题栏可以自定义Vi ...

  5. Android Toast 封装,避免Toast消息覆盖,替换系统Toast最好用的封装

    Android Toast 封装,避免Toast消息覆盖,无阻塞,等强大功能   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  6. sqlite在Android上的一个bug:SQLiteCantOpenDatabaseException when nativeExecuteForCursorWindow

    更多内容在这里查看 https://ahangchen.gitbooks.io/windy-afternoon/content/ ::-/com.company.product W/System.er ...

  7. js 与 ios Android交互

    一.android 交互 1.js调用webview 在android API Level 17及以上的版本中,就会出现js调用不了android的代码,这是版本兼容的问题,需要在调用的方法上面加一个 ...

  8. WebView之javascript与android交互基础加强

    一.什么是js与android交互? 通俗一点就是使用js代码调用java代码,或者使用java代码调用js代码. 二.为什么要使用js与java代码交互? 1.可以做一些js网页做本身处理不了的事情 ...

  9. 使用Struts2服务端与android交互

    转自:http://www.cnblogs.com/android-html5/archive/2011/09/25/2534107.html android--使用Struts2服务端与androi ...

随机推荐

  1. ajax+ashx

    eg: $('.setIsEnableClosed').click(function(){ var id=$(id).attr("name"); var isChecked=$(t ...

  2. 《Linux内核分析》第七周 可执行程序的装载

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK SEVEN ...

  3. Microsoft ACE OLEDB 12.0概念及用法

    首先需要清楚几个概念: Database engine(数据引擎):一些预先存储于数据库中的组件: Microsoft JET (Joint Engine Technology):Microsoft ...

  4. SQL Server 导入 MDF LDF文件

    EXEC sp_attach_db @dbname = 'OA', @filename1 = 'C:\OA.mdf', @filename2 = 'C:\OA_log.ldf'

  5. FingerGestures 屏蔽NGUI的方法

    在Google搜到的帖子中提到的方法 有一个地方是错误的(折腾了好久 哎) http://www.tasharen.com/forum/index.php?topic=127.0 Camera NGU ...

  6. Mysql 设置utf-8 真正一劳永逸的方法

    用 bash 进入linux 之后,再 mysql -u root -p ,如果insert into 某个表,总是会出现乱码. 网上搜了一堆,其中一个老外的说法才适用.用 set names utf ...

  7. ssh安装与配置

    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传统的网络服务程序,如 ...

  8. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数002·AI人工智能

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数002·AI人工智能 AI人工智能:包括knn.gmm.svm等 为方便阅读,在不影响说明的前提下,笔者对函数进行了 ...

  9. 转:SVN服务器搭建和使用(三)

    http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 接下来,试试用TortoiseSVN修改文件,添加文件,删除文件, ...

  10. VS2013 密钥

    MXS&Vincene  ─╄OvЁ  &0000017─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...