package com.v2ex.v2droid;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class NodeDB {
MySqlite mySqlite;
public NodeDB(Context context) {
mySqlite = new MySqlite(context, "node_db", null, 1);
}
public void insert(String node_name, String node_id) {
mySqlite.insertNodeDB(node_name, node_id);
}
public void delete(String node_name) {
mySqlite.deleteFromNodeDB(node_name);
}
public String getID(String node_name) {
Cursor result = mySqlite.search_byName(node_name);
result.moveToFirst();
String value = result.getString(1);
return value;
}
public String[] getAllNames() {
Cursor result = mySqlite.search_all();
String[] nodes = new String[result.getCount()];
result.moveToFirst();
int i = 0;
while (!result.isAfterLast()) {
String name=result.getString(0);
nodes[i] = name;
result.moveToNext();
}
result.close();
return nodes;
}
class MySqlite extends SQLiteOpenHelper {
/**
* 创建的表名
*/
public static final String tableName = "node_db";
/**
* 数据库唯一标示的id
*/
public static final String NODE_NAME = "node_name";
public static final String NODE_ID = "node_id";
private SQLiteDatabase db;
/**
* 数据库构造
*/
public MySqlite(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
db = getWritableDatabase();
db = getReadableDatabase();
// db.execSQL("CREATE TABLE IF NOT EXISTS " + imgtableName +
// "(imageId INTEGER PRIMARY KEY,bitmapValues BLOB )");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 删除以前的旧表,创建一张新的空表
db.execSQL("DROP TABLE IF EXISTS " + tableName);
onCreate(db);
}
/**
* 从text表中删除id为id的那条数据
*/
public void deleteFromNodeDB(String name) {
try {
db.execSQL("delete from " + tableName + " where node_name="
+ name);
} catch (SQLException e) {
Log.d("delete", "已经删除");
}
}
public Cursor search_all() {
Cursor reCursor = db.rawQuery("select * from " + tableName, null);
return reCursor;
}
public Cursor search_byName(String node_name) {
Cursor reCursor = null;
try {
reCursor = db.rawQuery("select * from " + tableName
+ " where node_name='" + node_name + "' ", null);
} catch (SQLException e) {
Log.e("error", e.getMessage());
}
return reCursor;
}
/**
* 向表node_db中插入一条数据
*/
public void insertNodeDB(String node_name, String node_id) {
try {
String sqlString = "INSERT INTO " + tableName + " VALUES('"
+ node_name + "','" + node_id + "')";
db.execSQL(sqlString);
} catch (SQLException e) {
// TODO: handle exception
Log.e("error", e.getMessage());
}
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
Log.e("sqlite", "create table");
db.execSQL("CREATE TABLE IF NOT EXISTS " + tableName
+ " (node_name Text,node_id Text)");
Log.e("sqlite", "create table succeed");
}
}
}