1. android怎麼連接sqlite資料庫
//祥毀脊打謹滲余轎開或創建test.db資料庫 :這就是你說的連接sqlite資料庫
SQLiteDatabasedb = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);
//創建person表
db.execSQL("DROPTABLE IF EXISTS person");
db.execSQL("CREATE TABLE person (_idINTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");
2. android 關於連接 sqlite問題
與安卓無關,sqlite本身的特性就是文件性資料庫,如果某個後台進程後者應用進程通過sqlite3_open或者sqlite3_popen打開資料庫文件,那麼默認建立一個連接,其他進程如果訪問返回sqlite_busy,等同於庫鎖狀態。
3. android怎麼連接sqlite資料庫
繼承SQLiteOpenHelper
onCreate(SQLiteDatabase):在資料庫第一次創建的時候會調用這個方法,一般我們在這個方法里邊創建資料庫表。
onUpgrade(SQLiteDatabase,int,int):當資料庫需要修改的時候,Android系統會主動的調用這個方法
getReadableDatabase() 創建伍掘或者打開一個查詢資料庫
getWritableDatabase()創建或者打開一個可寫數據液芹庫
db.execSQL執行SQL語句
這種問題用腔埋核網路知道提問太慢了,自己網路下瞬間就一大堆資料了或者看下教學視頻很快就學會了
4. android怎麼連接sqlite資料庫
Android是有自帶的類庫的:SQLiteOpenHelper,使用的時候繼承這個類,然後寫邏輯就可以,一般使用單例模式:
java">(Contextcontext){
if(helper==null){
helper=newDBHelper(context);
}
returnhelper;
}
privateDBHelper(Contextcontext){
super(context,"你自己的資料庫名",null,資料庫版本);
}
使用的時候也很簡單,下面是一個刪除操作:
(Stringpackname){
SQLiteDatabasedb=getWritableDatabase();
try{
db.beginTransaction();
db.delete("site","packname=?",newString[]{packname});
db.setTransactionSuccessful();
}finally{
db.endTransaction();
if(db!=null){
}
}
}
5. android怎麼連接sqlite資料庫
public class SQLiteActivity extends Activity {
/禪亂** Called when the activity is first created. */
private Button createButton;
private Button insertButton;
private Button updateButton;
private Button updateRecordButton;
private Button queryButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
createButton = (Button)findViewById(R.id.createDatabase);
updateButton = (Button)findViewById(R.id.updateDatabase);
insertButton = (Button)findViewById(R.id.insert);
updateRecordButton = (Button)findViewById(R.id.update);
queryButton = (Button)findViewById(R.id.query);
createButton.setOnClickListener(new CreateListener());
updateButton.setOnClickListener(new UpdateListener());
insertButton.setOnClickListener(new InsertListener());
updateRecordButton.setOnClickListener(new UpdateRecordListener());
queryButton.setOnClickListener(new QueryListener());
}
class CreateListener implements OnClickListener{
@Override
public void onClick(View v) {
//創建一個DatabaseHelper對象
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
//只有調用了DatabaseHelper對象的getReadableDatabase()方法,或者是getWritableDatabase()方法之後,才會創建,或打穗凳開一個賀族檔資料庫
SQLiteDatabase db = dbHelper.getReadableDatabase();
}
}
class UpdateListener implements OnClickListener{
@Override
public void onClick(View v) {
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
SQLiteDatabase db = dbHelper.getReadableDatabase();
}
}
class InsertListener implements OnClickListener{
@Override
public void onClick(View v) {
//生成ContentValues對象
ContentValues values = new ContentValues();
//想該對象當中插入鍵值對,其中鍵是列名,值是希望插入到這一列的值,值必須和資料庫當中的數據類型一致
values.put("id", 1);
values.put("name","zhangsan");
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
SQLiteDatabase db = dbHelper.getWritableDatabase();
//調用insert方法,就可以將數據插入到資料庫當中
db.insert("user", null, values);
}
}
//更新操作就相當於執行SQL語句當中的update語句
//UPDATE table_name SET XXCOL=XXX WHERE XXXXCOL=XX...
class UpdateRecordListener implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//得到一個可寫的SQLiteDatabase對象
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "zhangsanfeng");
//第一個參數是要更新的表名
//第二個參數是一個ContentValeus對象
//第三個參數是where子句
db.update("user", values, "id=?", new String[]{"1"});
}
}
class QueryListener implements OnClickListener{
@Override
public void onClick(View v) {
System.out.println("aaa------------------");
Log.d("myDebug", "myFirstDebugMsg");
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
System.out.println("query--->" + name);
}
}
}
}
6. android怎麼連接sqlite資料庫
這個Android是有自帶喊首拆的類庫的:SQLiteOpenHelper,使用的時候繼承這個類,然後寫自己的邏輯 就OK了,一般使用單例模式:
public synchronized static DBHelper getDBHelper(Context context) {
if (helper == null) {
helper = new DBHelper(context);
}
return helper;
}
private DBHelper(Context context) {
super(context, "你自己的資料庫芹頃名", null, 資料庫版本);
}
使用的時候鄭棗也很簡單:下面是一個刪除操作:
public synchronized void deleteSite(String packname) {
SQLiteDatabase db = getWritableDatabase();
try {
db.beginTransaction();
db.delete("site", "packname=?", new String[] { packname });
db.setTransactionSuccessful();
} finally {
db.endTransaction();
if (db != null) {
}
}
}
7. android怎麼連接sqlite資料庫
http://blog.csdn.net/liushengmeng/article/details/7973908
http://download.csdn.net/detail/jilongliang/4436456#comment
看這里
Android連接SQLite數據悄脊庫
1、DatabaseHelper類繼承了SQLiteOpenHelper類,並重寫了onCreate和onUngrade方法。
private static class DatabaseHelper extends SQLiteOpenHelper{
DatabaseHelper (Context context){
Super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db){
String sql = "CREATE TABLE tb_test (_id INTEGER DEFAULT '1' NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_ysbj TEXT NOT NULL,title TEXT NOT NULL,content_ysbj TEXT NOT NULL)"; }
db.execSQL(sql);
}
public void onUpgrade (SQLiteDatabase db,int oldVersion,int newVersion){
}
}
1、SQLiteOpenHelper (android.database.sqlite.SQLiteOpenHelper)
這是一個抽象類,關於抽象類我們都知道,如果要使用它,一定是繼承它!
這個類的方法很少,有一個構造方法
SQLiteOpenHelper(android.content.Context context, java.lang.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version);
參數不做過多的解釋,CursorFactory一般直接傳null就可以
public void onCreate(SQLiteDatabase db)
此方法在創建資料庫是被調用,所以,應該把創建表的操作放到這個方法裡面,一會兒在後面我們會再詳細的說如何創建表飢讓
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
從方法名上我們就能知道這個方法是執行更新的,沒錯,當version改變是系統會調用這個方法,所以在這個方法里應該執行刪除現有表,然後手動調用onCreate的操作
SQLiteDatabase getReadableDatabase()
可讀的SQLiteDatabase對象
SQLiteDatabase getWritableDatabase()
獲取可寫的SQLiteDatabase對象
2、SQLiteDatabase(android.database.sqlite.SQLiteDatabase)
關於操作資料庫的工作(增、刪、查、改)都在這個類里
execSQL(sql)
執行SQL語句,用這個方法+SQL語句可以非啟肢滲常方便的執行增、刪、查、改.除此之外,Android還提供了功過方法實現增、刪、查、改
long insert(TABLE_NAME, null, contentValues)添加記錄
int delete(TABLE_NAME, where, whereValue)刪除記錄
int update(TABLE_NAME, contentValues, where, whereValue) 更新記錄
Cursor query(TABLE_NAME, null, null, null, null, null, null) 查詢記錄
除此之外,還有很多方法,如:beginTransaction()開始事務、endTransaction()結束事務...有興趣的可以自己看api,這里就不多贅述了
3、Cursor(android.database.Cursor)
游標(介面),這個很熟悉了吧,Cursor里的方法非常多,常用的有:
boolean moveToPosition(position)將指針移動到某記錄
getColumnIndex(Contacts.People.NAME)按列名獲取id
int getCount()獲取記錄總數
boolean requery()重新查詢
boolean isAfterLast()指針是否在末尾
boolean isBeforeFirst()時候是開始位置
boolean isFirst()是否是第一條記錄
boolean isLast()是否是最後一條記錄
boolean moveToFirst()、 boolean moveToLast()、 boolean moveToNext()同moveToPosition(position)
4、SimpleCursorAdapter(android.widget.SimpleCursorAdapter)
也許你會奇怪了,之前我還說過關於資料庫的操作都在database和database.sqlite包下,為什麼把一個Adapter放到這里,如果你用過Android的SQLite3,你一定會知道,這是因為我們對資料庫的操作會經常跟列表聯系起來經常有朋友會在這出錯,但其實也很簡單
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list,myCursor,new String[] {DB.TEXT1,DB. TEXT2},new int[]{ R.id.list1,R.id.listText2 });my.setAdapter(adapter);
一共5個參數,具體如下:
參數1:Content
參數2:布局
參數3:Cursor游標對象
參數4:顯示的欄位,傳入String[]
參數5:顯示欄位使用的組件,傳入int[],該數組中是TextView組件的id
一、寫一個類繼承SQLiteOpenHelpe
public class DatabaseHelper extends SQLiteOpenHelper
構造方法:
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
在onCreate方法里寫建表的操作
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE tb_test (_id INTEGER DEFAULT '1' NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_ysbj TEXT NOT NULL,title TEXT NOT NULL,content_ysbj TEXT NOT NULL)";
db.execSQL(sql);//需要異常捕獲
}
在onUpgrade方法里刪除現有表,然後手動調用onCtreate創建表
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "drop table "+tbname;
db.execSQL(sql);
onCreate(db);
}
對表增、刪、查、改的方法,這里用的是SQLiteOpenHelper提供的方法,也可以用sql語句實現,都是一樣的
關於獲取可讀/可寫SQLiteDatabase,我不說大家也應該會想到,只有查找才會用到可讀的SQLiteDatabase
public long insert(String tname, int tage, String ttel){
SQLiteDatabase db= getWritableDatabase();//獲取可寫SQLiteDatabase對象
//ContentValues類似map,存入的是鍵值對
ContentValues contentValues = new ContentValues();
contentValues.put("tname", tname);
contentValues.put("tage", tage);
contentValues.put("ttel", ttel);
return db.insert(tbname, null, contentValues);
}
public void delete(String _id){
SQLiteDatabase db= getWritableDatabase();
db.delete(tbname,
"_id=?",
new String[]{_id});
}
public void update(String _id,String tname, int tage, String ttel){
SQLiteDatabase db= getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("tname", tname);
contentValues.put("tage", tage);
contentValues.put("ttel", ttel);
db.update(tbname, contentValues,
"_id=?",
new String[]{_id});
}
public Cursor select(){
SQLiteDatabase db = getReadableDatabase();
return db.query(
tbname,
new String[]{"_id","tname","tage","ttel","taddr"},
null,
null, null, null, "_id desc");
}
關於db.query方法的參數,有很多.
參數1:表名
參數2:返回數據包含的列信息,String數組里放的都是列名
參數3:相當於sql里的where,sql里where後寫的內容放到這就行了,例如:tage>?
參數4:如果你在參數3里寫了?(知道我為什麼寫tage>?了吧),那個這里就是代替?的值 接上例:new String[]{"30"}
參數5:分組,不解釋了,不想分組就傳null
參數6:having,想不起來的看看SQL
參數7:orderBy排序
SQLiteOpenHelper我們繼承使用的
SQLiteDatabase增刪查改都離不開它,即使你直接用sql語句,也要用到execSQL(sql)
二、這里無非是對DatabaseHelper類定義方法的調用.
Android查詢出來的結果一Cursor形式返回
cursor = sqLiteHelper.select();//是不是很簡單?
查詢出來的cursor一般會顯示在listView中,這就要用到剛才提到的SimpleCursorAdapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list_row,cursor,new String[]{"tname","ttel"},new int[]{R.id.TextView01,R.id.TextView02});
8. android怎麼連接sqlite資料庫
寫個類,繼承激虛SQLiteOpenHepler就可以自動創建資料庫了,然後在這個類中創建表,索引等。不需要手動連接,自動創建資料庫的。創建成功的話在data/data/com.xxx.xxx/databases下面有你創建的資料庫名稱。
public class DBService extends SQLiteOpenHelper {
private final static int VERSION = 1;
private final static String DATABASE_NAME = "database.db";
public DBService(Context context) {
this(context, DATABASE_NAME, null, VERSION);
}
public DBService(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
//創建表
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE [mytable]("
+ "神逗_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ " name varchar not nul"l;
db.execSQL(sql);
}
//更游鉛賣新資料庫
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(newVersion > oldVersion){
db.execSQL("DROP TABLE IF EXISTS[mytable]");
} else {
return;
}
onCreate(db);
}
}