Android的SQLite基本操作
涉及SQLite的增删改查,结果用log显示
package com.example.sqlconnecttest; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DBHelper extends SQLiteOpenHelper{ /* * 必须有的构造器 */ public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /* * 当第一次创建数据库时,就调用该方法 */ @Override public void onCreate(SQLiteDatabase db) { Log.i("createDatabases", "创建数据库--->"); } /* * 当更新数据库时,调用该方法 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.i("updateDatabase", "更新数据库--->"); } }
package com.example.sqlconnecttest; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener{ private Button createDatabase; private Button createTable; private Button insert; private Button select; private Button update; private Button delete; private final String DATABASE_NAME = "myDatabase"; private SQLiteDatabase mySQLiteDatabase = null; private final String TABLE_NAME = "user"; private String SQL = "CREATE TABLE [user] ("+ "[id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "+ "[username] VARCHAR NOT NULL, "+ "[password] VARCHAR NOT NULL, "+ "[phoneNumber] VARCHAR NOT NULL)"; private DBHelper db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); createView(); setListener(); } private void createView(){ createDatabase = (Button) findViewById(R.id.createDatabase); createTable = (Button) findViewById(R.id.createTable); insert = (Button) findViewById(R.id.insert); select = (Button) findViewById(R.id.select); update = (Button) findViewById(R.id.update); delete = (Button) findViewById(R.id.delete); } //加监听器 private void setListener(){ createDatabase.setOnClickListener(this); createTable.setOnClickListener(this); insert.setOnClickListener(this); select.setOnClickListener(this); update.setOnClickListener(this); delete.setOnClickListener(this); } //各种监听方法 @Override public void onClick(View view) { switch(view.getId()){ case R.id.createDatabase: { db = new DBHelper(MainActivity.this,DATABASE_NAME,null,1); mySQLiteDatabase = db.getWritableDatabase(); Log.i("数据库对象", mySQLiteDatabase.toString()); //System.out.print("数据库对象"+mySQLiteDatabase); break; } case R.id.createTable: { db = new DBHelper(MainActivity.this, DATABASE_NAME, null, 1); mySQLiteDatabase = db.getWritableDatabase(); try { mySQLiteDatabase.execSQL(SQL); Log.i("创建表", SQL); } catch (SQLException e) { e.printStackTrace(); Log.i("创建表--》", "创建表失败----------------》"); } break; } case R.id.insert: { db = new DBHelper(MainActivity.this, DATABASE_NAME, null, 1); mySQLiteDatabase = db.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("username", "老爸"); cv.put("password", 123456); cv.put("phoneNumber", "134756658888"); long n = mySQLiteDatabase.insert(TABLE_NAME, null, cv); Log.i("插入数据", n + ""); mySQLiteDatabase.close(); break; } case R.id.select: { db = new DBHelper(MainActivity.this, DATABASE_NAME, null, 1); mySQLiteDatabase = db.getReadableDatabase(); /** * 参数1:表名 * 参数2:要显示的列 * 参数3:where语句 * 参数4:where语句的条件值 * 参数5:分组方式 * 参数6:having条件 * 参数7:排序方式 */ Cursor cursor = mySQLiteDatabase.query(TABLE_NAME, new String[]{"id","username","password","phoneNumber"}, null, null, null, null, null); while(cursor.moveToNext()){ int id = cursor.getInt(cursor.getColumnIndex("id")); String username = cursor.getString(cursor.getColumnIndex("username")); String password = cursor.getString(cursor.getColumnIndex("password")); String phoneNumber = cursor.getString(cursor.getColumnIndex("phoneNumber")); Log.i("query-->", "id:" + id + "userName:" + username + "password" + password + "phoneNumber" + phoneNumber); } mySQLiteDatabase.close(); break; } case R.id.update: { db = new DBHelper(MainActivity.this, DATABASE_NAME, null, 1); mySQLiteDatabase = db.getWritableDatabase(); ContentValues cv1 = new ContentValues(); cv1.put("username", "admin"); cv1.put("password", "admin"); cv1.put("phoneNumber", "1388888"); String whereClause = "id" + "=?"; String[] whereArgs = {"8"}; /* * 参数1:表名 * 参数2:是一个ContextValue对象,就是更新的值 * 参数3:where语句条件 * 参数4:where条件的值 */ int index = mySQLiteDatabase.update(TABLE_NAME, cv1, whereClause, whereArgs); Log.i("update-->", index + ""); break; } case R.id.delete: { db = new DBHelper(MainActivity.this, DATABASE_NAME, null, 1); mySQLiteDatabase = db.getWritableDatabase(); /*** * 参数1:表名 * 参数2:where语句字段 * 参数3:where语句字段的值 */ String whereClause1 = "id" + "=?"; String[] whereArgs1 = {"1"}; int num = mySQLiteDatabase.delete(TABLE_NAME, whereClause1, whereArgs1); Log.i("删除记录-->", num + ""); mySQLiteDatabase.close(); break; } default: break; } } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.sqlconnecttest.MainActivity" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="SQLite数据库" /> <Button android:id="@+id/createDatabase" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/textView" android:text="创建一个数据库" /> <Button android:id="@+id/createTable" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/createDatabase" android:text="创建一张表" /> <Button android:id="@+id/insert" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/createTable" android:text="插入数据" /> <Button android:id="@+id/select" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/insert" android:text="查询数据" /> <Button android:id="@+id/update" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/select" android:text="更新数据" /> <Button android:id="@+id/delete" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/update" android:text="删除数据" /> </RelativeLayout>
运行结果
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。