android SQLiteOpenHelper操作数据库 搜索关键字列表应用
2012-08-16 15:52
746 查看
package com.EleMenu_YuanXu_v12.DB;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import com.EleMenu_YuanXu_v12.Util.UtilValue;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;
/**
* 数据操作,
* @author L
*
*/
public class DBService extends SQLiteOpenHelper{
private List<String> list_menu;
public boolean isCreate = false;
public final static int DATABASE_VERSION = 1; //版本号
public final static String DATABASE_NAME = "keywords.db"; //数据库名
public final static String TABLE_NAME = "keywords";
//初始化该类的时候,创建新的数据库
public DBService(Context context) {
super(context, DBShowImpl.DATABASE_NAME, null, DBShowImpl.DATABASE_VERSION);
}
/**
* 创建数据库表
*/
@Override
public void onCreate(SQLiteDatabase db) {
//判断改表是否存在
if(!tabbleIsExist(DBShowImpl.TABLE_NAME)){
db.execSQL("create table "+DBShowImpl.TABLE_NAME+"(_id integer PRIMARY KEY autoincrement,menu_id varchar(20),keyword text)");
System.out.println("成功创建");
isCreate = true;
}
Log. e("Database" ,"onCreate" );
}
/**
* 更新版本号
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("onUpgrade");
}
// 执行select语句
public Cursor query(String sql, String[] args)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
return cursor;
}
/**
* 创建数据库表
*/
public void creatDB(){
SQLiteDatabase db = null;
db = this.getWritableDatabase();
db.execSQL("create table if not exists "+DBShowImpl.TABLE_NAME+"(_id integer PRIMARY KEY autoincrement,menu_id varchar(20),keyword text)");
}
/**
* 更新数据库
*/
public void updateDB(){
SQLiteDatabase db = null;
db = this.getWritableDatabase();
db.execSQL("DROP TABLE IF EXISTS["+DBShowImpl.TABLE_NAME+"]");
creatDB();
initDB();
Toast.makeText(UtilValue.mainActivity, "成功更新数据库", 500).show();
Log. e("Database" ,"onUpgrade" );
}
/**
* 根据关键字返回匹配的一系列 menu_id
* @param keyword 关键字
* @return 关键字id集合List
*/
public Set<String> queryKeyword(String keyword){
Set<String> keywords_list = new HashSet<String>();
SQLiteDatabase db = this.getReadableDatabase();
// Cursor cursor = db.query("keywords", new String[]{"_id","menu_id","keyword"}, "keyword=?", new String[]{keyword}, null, null, null);
Cursor cursor = db.rawQuery("select * from "+DBShowImpl.TABLE_NAME+" where keyword like ? ", new String[]{"%"+keyword+"%"});
while(cursor.moveToNext()){
keywords_list.add(cursor.getString(cursor.getColumnIndex("menu_id")));
}
return keywords_list;
}
//将数据插入数据库
public void insertKeyword(ContentValues values){
SQLiteDatabase db = this.getWritableDatabase();
//调用insert方法,就可以将数据插入到数据库当中
db.insert(DBShowImpl.TABLE_NAME, null, values);
}
/**
* 初始化数据库-添加数据
*/
public void initDB(){
DBShowImpl dbShowImpl = new DBShowImpl(UtilValue.mainActivity);
//获得集合迭代器
Iterator<Entry<String, List<String>>> iterator = dbShowImpl.getKEYS_M().entrySet().iterator();
while(iterator.hasNext()){
Entry<String, List<String>> entry = iterator.next();
ContentValues values = new ContentValues();
values.put("menu_id", entry.getKey());
list_menu = entry.getValue();
for (int i = 0;i < list_menu.size();i++){
values.put("keyword",list_menu.get(i));
this.insertKeyword(values);
}
}
}
/**
* 判断某张表是否存在
* @param tabName 表名
* @return
*/
public boolean tabbleIsExist(String tableName){
boolean result = false;
if(tableName == null){
return false;
}
SQLiteDatabase db = null;
Cursor cursor = null;
try {
db = this.getReadableDatabase();
String sql = "select count(*) as c from Sqlite_master where type ='table' and name ='"+tableName.trim()+"' ";
cursor = db.rawQuery(sql, null);
if(cursor.moveToNext()){
int count = cursor.getInt(0);
if(count>0){
result = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import com.EleMenu_YuanXu_v12.Util.UtilValue;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;
/**
* 数据操作,
* @author L
*
*/
public class DBService extends SQLiteOpenHelper{
private List<String> list_menu;
public boolean isCreate = false;
public final static int DATABASE_VERSION = 1; //版本号
public final static String DATABASE_NAME = "keywords.db"; //数据库名
public final static String TABLE_NAME = "keywords";
//初始化该类的时候,创建新的数据库
public DBService(Context context) {
super(context, DBShowImpl.DATABASE_NAME, null, DBShowImpl.DATABASE_VERSION);
}
/**
* 创建数据库表
*/
@Override
public void onCreate(SQLiteDatabase db) {
//判断改表是否存在
if(!tabbleIsExist(DBShowImpl.TABLE_NAME)){
db.execSQL("create table "+DBShowImpl.TABLE_NAME+"(_id integer PRIMARY KEY autoincrement,menu_id varchar(20),keyword text)");
System.out.println("成功创建");
isCreate = true;
}
Log. e("Database" ,"onCreate" );
}
/**
* 更新版本号
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("onUpgrade");
}
// 执行select语句
public Cursor query(String sql, String[] args)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
return cursor;
}
/**
* 创建数据库表
*/
public void creatDB(){
SQLiteDatabase db = null;
db = this.getWritableDatabase();
db.execSQL("create table if not exists "+DBShowImpl.TABLE_NAME+"(_id integer PRIMARY KEY autoincrement,menu_id varchar(20),keyword text)");
}
/**
* 更新数据库
*/
public void updateDB(){
SQLiteDatabase db = null;
db = this.getWritableDatabase();
db.execSQL("DROP TABLE IF EXISTS["+DBShowImpl.TABLE_NAME+"]");
creatDB();
initDB();
Toast.makeText(UtilValue.mainActivity, "成功更新数据库", 500).show();
Log. e("Database" ,"onUpgrade" );
}
/**
* 根据关键字返回匹配的一系列 menu_id
* @param keyword 关键字
* @return 关键字id集合List
*/
public Set<String> queryKeyword(String keyword){
Set<String> keywords_list = new HashSet<String>();
SQLiteDatabase db = this.getReadableDatabase();
// Cursor cursor = db.query("keywords", new String[]{"_id","menu_id","keyword"}, "keyword=?", new String[]{keyword}, null, null, null);
Cursor cursor = db.rawQuery("select * from "+DBShowImpl.TABLE_NAME+" where keyword like ? ", new String[]{"%"+keyword+"%"});
while(cursor.moveToNext()){
keywords_list.add(cursor.getString(cursor.getColumnIndex("menu_id")));
}
return keywords_list;
}
//将数据插入数据库
public void insertKeyword(ContentValues values){
SQLiteDatabase db = this.getWritableDatabase();
//调用insert方法,就可以将数据插入到数据库当中
db.insert(DBShowImpl.TABLE_NAME, null, values);
}
/**
* 初始化数据库-添加数据
*/
public void initDB(){
DBShowImpl dbShowImpl = new DBShowImpl(UtilValue.mainActivity);
//获得集合迭代器
Iterator<Entry<String, List<String>>> iterator = dbShowImpl.getKEYS_M().entrySet().iterator();
while(iterator.hasNext()){
Entry<String, List<String>> entry = iterator.next();
ContentValues values = new ContentValues();
values.put("menu_id", entry.getKey());
list_menu = entry.getValue();
for (int i = 0;i < list_menu.size();i++){
values.put("keyword",list_menu.get(i));
this.insertKeyword(values);
}
}
}
/**
* 判断某张表是否存在
* @param tabName 表名
* @return
*/
public boolean tabbleIsExist(String tableName){
boolean result = false;
if(tableName == null){
return false;
}
SQLiteDatabase db = null;
Cursor cursor = null;
try {
db = this.getReadableDatabase();
String sql = "select count(*) as c from Sqlite_master where type ='table' and name ='"+tableName.trim()+"' ";
cursor = db.rawQuery(sql, null);
if(cursor.moveToNext()){
int count = cursor.getInt(0);
if(count>0){
result = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
相关文章推荐
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加检索操作(Retrieve)
- 我的android 第15天 -使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —删除数据
- Android开发—数据库应用—访问数据表(SQLite OpenHelper)
- android sqliteopenhelper 数据库操作
- android:SQLiteOpenHelper 与 greenDao 数据库操作
- 2014-10-27Android学习------SQLite数据库操作(二)-----数据库的创建--SQLiteHelper extends SQLiteOpenHelper
- Android下SQLite3数据库操作笔记(二)之-SQLiteOpenHelper
- android 之SQLite使用SQLiteOpenHelper对数据库操作
- Android--数据库操作辅助类:SQLiteOpenHelper
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加查询
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —查询单条记录、修改
- Xamarin.Android 使用 SQLiteOpenHelper 进行数据库操作
- android数据库操作SQLiteOpenHelper
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加数据(Create)
- android SQLiteHelper对数据库的操作
- Android中使用SQLiteOpenHelper管理SD卡中的数据库
- Android中使用SQLiteOpenHelper管理SD卡中的数据库
- Android中使用SQLiteOpenHelper管理SD卡中的数据库
- Android SQLite数据库—SQLiteOpenHelper(二)