SQLite的访问表的内容 [英] SQLite access table content
问题描述
我已经成功地使用下面的类表中插入的数据,但我不知道如何访问这些数据。另外,我想将数据表和数组列表的列内容,如
COLUMN1 ---> ARRAY1
COLUMN1 --->数组2
COLUMN1 ---> ARRAY3
COLUMN1 ---> array4
块引用>公共类SQLiteAdapter { 公共静态最后弦乐MYDATABASE_NAME =MY_DATABASE;
公共静态最后弦乐MYDATABASE_TABLE =MY_TABLE;
公共静态最终诠释MYDATABASE_VERSION = 1;
公共静态最后弦乐KEY_ID =_id;
公共静态最后弦乐KEY_CONTENT1 =内容1;
公共静态最后弦乐KEY_CONTENT2 =内容2;
公共静态最后弦乐KEY_CONTENT3 =Content3;
公共静态最后弦乐KEY_CONTENT4 =Content4; //创建表MY_DATABASE(ID整数主键,内容文字NOT NULL);
私有静态最后弦乐SCRIPT_CREATE_DATABASE =
CREATE TABLE+ MYDATABASE_TABLE +(
+ KEY_ID +整数主键自动增量
+ KEY_CONTENT1 +文本不为空,
+ KEY_CONTENT2 +文本不为空,
+ KEY_CONTENT3 +文本不为空,
+ KEY_CONTENT4 +文字NOT NULL);; 私人SQLiteHelper sqLiteHelper;
私人SQLiteDatabase sqLiteDatabase; 私人上下文的背景下; 公共SQLiteAdapter(上下文C){ this.context = C;
} 公共SQLiteAdapter openToRead()抛出android.database.SQLException {
sqLiteHelper =新SQLiteHelper(背景下,MYDATABASE_NAME,空,MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getReadableDatabase();
返回此;
} 公共SQLiteAdapter openToWrite()抛出android.database.SQLException {
sqLiteHelper =新SQLiteHelper(背景下,MYDATABASE_NAME,空,MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
返回此;
} 公共无效的close(){
sqLiteHelper.close();
} 众长插入(字符串内容1,字符串内容2,字符串content3,字符串content4){ ContentValues contentValues =新ContentValues();
contentValues.put(KEY_CONTENT1,内容1);
contentValues.put(KEY_CONTENT2,内容2);
contentValues.put(KEY_CONTENT3,content3);
contentValues.put(KEY_CONTENT4,content4);
返回sqLiteDatabase.insert(MYDATABASE_TABLE,空,contentValues);
} 公众诠释deleteAll(){
返回sqLiteDatabase.delete(MYDATABASE_TABLE,NULL,NULL);
} 公共光标queueAll(){
的String [] =列新的String [] {KEY_ID,KEY_CONTENT1,KEY_CONTENT2,KEY_CONTENT3,KEY_CONTENT4};
光标光标= sqLiteDatabase.query(MYDATABASE_TABLE,列,
NULL,NULL,NULL,NULL,NULL); 返回游标;
} 公共类SQLiteHelper扩展SQLiteOpenHelper { 公共SQLiteHelper(上下文的背景下,字符串名称,
CursorFactory工厂,诠释的版本){
超(背景下,名称,厂家,版本);
} @覆盖
公共无效的onCreate(SQLiteDatabase DB){
// TODO自动生成方法存根
db.execSQL(SCRIPT_CREATE_DATABASE);
} @覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
// TODO自动生成方法存根
}
}
}
解决方案要访问一个数据库,试试这个。
首先,你必须具有延伸您的SQLiteOpenHelper的类。创建延伸 SQLiteOpenHelper 一个新的类,并呼吁他们在主数据库开幕类。
在这里你去添加这两个块,并叫他们在你
的onCreate
法公共光标getShow()
{
SQLiteDatabase分贝= obj.getReadableDatabase();
光标C = db.rawQuery(emp中选择*,NULL);
startManagingCursor(C);
返回℃;
}公共光标getEvent(光标C)
{
StringBuilder的SB =新的StringBuilder(数据库: - );
而(c.moveToNext())
{
长的id = c.getLong(0);
串未= c.getString(1);
串PW = c.getString(2);
串UT = c.getString(3);
sb.append(\\ n+ID: - + ID +
\\ n+用户名: - +未+
\\ n+密码: - + PW +\\ n+
\\ n+用户类型: - + UT +\\ n
);
}
tvTools.setText(某人);
返回℃;
}这取了我对
的TextView
先前创建并显示三列。现在,在调用这些方法的onCreate()
。光标C = getShow();
getEvent(C);它每一次为我工作。
I have successfully inserted data in to a table using following class, but I don’t know how to access those data. Also, I want to put data table and their column content in the array list like
column1--->array1 column1--->array2 column1--->array3 column1--->array4
public class SQLiteAdapter { public static final String MYDATABASE_NAME = "MY_DATABASE"; public static final String MYDATABASE_TABLE = "MY_TABLE"; public static final int MYDATABASE_VERSION = 1; public static final String KEY_ID = "_id"; public static final String KEY_CONTENT1 = "Content1"; public static final String KEY_CONTENT2 = "Content2"; public static final String KEY_CONTENT3 = "Content3"; public static final String KEY_CONTENT4 = "Content4"; //create table MY_DATABASE (ID integer primary key, Content text not null); private static final String SCRIPT_CREATE_DATABASE = "create table " + MYDATABASE_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " + KEY_CONTENT1 + " text not null, " + KEY_CONTENT2 + " text not null, " + KEY_CONTENT3 + " text not null, " + KEY_CONTENT4 + " text not null);"; private SQLiteHelper sqLiteHelper; private SQLiteDatabase sqLiteDatabase; private Context context; public SQLiteAdapter(Context c){ this.context=c; } public SQLiteAdapter openToRead() throws android.database.SQLException { sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION); sqLiteDatabase = sqLiteHelper.getReadableDatabase(); return this; } public SQLiteAdapter openToWrite() throws android.database.SQLException { sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION); sqLiteDatabase = sqLiteHelper.getWritableDatabase(); return this; } public void close(){ sqLiteHelper.close(); } public long insert(String content1, String content2, String content3, String content4){ ContentValues contentValues = new ContentValues(); contentValues.put(KEY_CONTENT1, content1); contentValues.put(KEY_CONTENT2, content2); contentValues.put(KEY_CONTENT3, content3); contentValues.put(KEY_CONTENT4, content4); return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues); } public int deleteAll(){ return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null); } public Cursor queueAll(){ String[] columns = new String[]{KEY_ID, KEY_CONTENT1, KEY_CONTENT2, KEY_CONTENT3, KEY_CONTENT4}; Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null, null, null, null, null); return cursor; } public class SQLiteHelper extends SQLiteOpenHelper { public SQLiteHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(SCRIPT_CREATE_DATABASE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } }
解决方案To have access to a database, try this.
First you must be having a class that extends your SQLiteOpenHelper. Create a new class which extends SQLiteOpenHelper and call them in main database opening class.
Here you go add these two chunks and call them in you
onCreate
methodpublic Cursor getShow() { SQLiteDatabase db = obj.getReadableDatabase(); Cursor c = db.rawQuery("select * from emp", null); startManagingCursor(c); return c; } public Cursor getEvent(Cursor c) { StringBuilder sb= new StringBuilder("Data Base:-"); while(c.moveToNext()) { long id = c.getLong(0); String un = c.getString(1); String pw = c.getString(2); String ut = c.getString(3); sb.append("\n"+"id:-"+id+ "\n"+"Username:-"+un+ "\n"+"Password:-"+pw+"\n"+ "\n"+"UserType:-"+ut+"\n" ); } tvTools.setText(sb); return c; }
This fetches three columns that i have created earlier and display them on
TextView
. Now call these method inonCreate()
.Cursor c = getShow(); getEvent(c);
It works for me every time.
这篇关于SQLite的访问表的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!