学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. delete all untracked files

    git clean -f git clean -fdx f   file d  directory x   .gitignore

  2. 混合App 框架选型

    个人一直想做个App,但是学习 IOS 的过程发现 原生的做界面还是听麻烦的就放弃了.后来就转到混合式App阵营了 混合式App 定义 Hybrid App(混合模式移动应用)是指介于web-app. ...

  3. mac自定义安装nodejs步骤

    自定义安装的好处是nodejs相关的文件都在同一个文件夹下,且不与其它程序的文件混合在同一文件夹下. 1.下载node并解压缩:https://nodejs.org/dist/,选择tar.gz包下载 ...

  4. mysql笔记(存储引擎)

    读写锁:. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也最高. 页面锁:开销和 ...

  5. Nginx 反向代理学习(一)

    反向代理apache等http资源 ## Basic reverse proxy server ## upstream apachephp{ server 127.0.0.1:8560; #php5. ...

  6. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

    package com.lw.HomeWork1;//包名 2 import java.util.Scanner; public class Demo18 { /** * @param args */ ...

  7. LeetCode Palindrome Permutation II

    原题链接在这里:https://leetcode.com/problems/palindrome-permutation-ii/ 题目: Given a string s, return all th ...

  8. linux pptpd账号同时登录的问题

    最近搞了个云主机搭建个VPN服务器给自己用, 特别是在公共场所的wifi上网时, 很多APP, 或者网站是没有https的, 所以为了保证信息(主要是账号密码)的安全, 搭个私有vpn还是很有必要的. ...

  9. jedis例子

    @Test public void testDiscoverNodesAutomatically(){ Set<HostAndPort> jedisClusterNode=new Hash ...

  10. Force StyleCop to Ignore a File

    You can quickly force StyleCop to ignore files in a project by manually modifying the project file, ...