package com.Aina.Android;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentValues;import android.content.DialogInterface;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class Test extends Activity {/** Called when the activity is first created. */private ListView lv = null;private SQLiteDatabase mSQLiteDatabase = null;private static final String DATABASE_NAME = "Test.db";private static final String TABLE_NAME = "table_test";private static final String COLUMN_ID = "_id";// INTEGER PRIMARY KEYprivate static final String COLUMN_NAME = "name";// TEXTprivate static final String COLUMN_AGE = "age";// INTEGERprivate static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS "+ TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY,"+ COLUMN_NAME + " TEXT," + COLUMN_AGE + " INTEGER)";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);lv = (ListView) this.findViewById(R.id.ListView01);try {mSQLiteDatabase = this.openOrCreateDatabase(DATABASE_NAME,Activity.MODE_PRIVATE, null);} catch (Exception ex) {this.ShowDialog("打开或者创建数据库异常:" + ex.getMessage());}try {mSQLiteDatabase.execSQL(CREATE_TABLE);} catch (Exception ex) {this.ShowDialog("创建表异常:" + ex.getMessage());}// this.InsertData();// this.InsertData2();// this.AddData();// this.UpdateData();// this.UpdateData2();// this.UpdateData3();// this.DeleteData();// this.DeleteData2();// this.DeleteData3();this.SelectData();}@Overrideprotected void onPause() {super.onPause();mSQLiteDatabase.close();// 关闭数据库}/** * 插入数据-execSQL */private void InsertData() {try {String str = "INSERT INTO " + TABLE_NAME + " (" + COLUMN_NAME + ","+ COLUMN_AGE + ")VALUES('张三',30)";mSQLiteDatabase.execSQL(str);} catch (Exception ex) {this.ShowDialog("插入数据异常:" + ex.getMessage());}}/** * 插入数据-execSQL */private void InsertData2() {try {String str = "INSERT INTO " + TABLE_NAME + " (" + COLUMN_NAME + ","+ COLUMN_AGE + ")VALUES(?,?)";Object[] ob = new Object[] { "王五", 50 };mSQLiteDatabase.execSQL(str, ob);} catch (Exception ex) {this.ShowDialog("插入数据异常:" + ex.getMessage());}}/** * 插入数据-insert() nullColumnHack,这个参数需要传入一个列名。SQL标准并不允许插入所有列均为空的一行数据, * 所以当传入的initialValues值为空或者为0时 * ,用nullColumnHack参数指定的列会被插入值为NULL的数据,然后再将此行插入到表中。 */private void AddData() {try {ContentValues cv = new ContentValues();cv.put(COLUMN_NAME, "李四");cv.put(COLUMN_AGE, 40);// long num = mSQLiteDatabase.insert(TABLE_NAME, COLUMN_NAME, cv);long num = mSQLiteDatabase.insertOrThrow(TABLE_NAME, null, cv);this.setTitle("num==" + num);} catch (Exception ex) {this.ShowDialog("插入数据异常:" + ex.getMessage());}}/** * 更新数据 */private void UpdateData() {try {String str = "UPDATE " + TABLE_NAME + " SET " + COLUMN_AGE+ " = 25 WHERE _id=1";mSQLiteDatabase.execSQL(str);} catch (Exception ex) {this.ShowDialog("更新数据异常:" + ex.getMessage());}}/** * 更新数据 */private void UpdateData2() {try {String str = "UPDATE " + TABLE_NAME + " SET " + COLUMN_AGE+ " = ? WHERE _id=?";Object[] Ob = new Object[] { 33, 2 };mSQLiteDatabase.execSQL(str, Ob);} catch (Exception ex) {this.ShowDialog("更新数据异常:" + ex.getMessage());}}/** * 更新数据 */private void UpdateData3() {try {ContentValues cv = new ContentValues();cv.put(COLUMN_NAME, "李四4");cv.put(COLUMN_AGE, 43);int num = mSQLiteDatabase.update(TABLE_NAME, cv,COLUMN_NAME + "=?", new String[] { "李四" });this.setTitle("修改行数num=" + num);} catch (Exception ex) {this.ShowDialog("更新数据异常:" + ex.getMessage());}}/** * 删除数据 */private void DeleteData() {try {String str = "DELETE FROM " + TABLE_NAME + " WHERE _id=3";mSQLiteDatabase.execSQL(str);} catch (Exception ex) {this.ShowDialog("删除数据异常:" + ex.getMessage());}}/** * 删除数据 */private void DeleteData2() {try {String str = "DELETE FROM " + TABLE_NAME + " WHERE _id=?";mSQLiteDatabase.execSQL(str, new Object[] { 2 });} catch (Exception ex) {this.ShowDialog("删除数据异常:" + ex.getMessage());}}/** * 删除数据 */private void DeleteData3() {try {int num = mSQLiteDatabase.delete(TABLE_NAME, "_id=1", null);this.setTitle("删除行数num=" + num);} catch (Exception ex) {this.ShowDialog("删除数据异常:" + ex.getMessage());}}/** * 查询数据 */private void SelectData() {try {String sql = "SELECT * FROM " + TABLE_NAME;Cursor cursor = mSQLiteDatabase.rawQuery(sql,null);// Cursor cursor = mSQLiteDatabase.query(TABLE_NAME, new String[] {// COLUMN_ID, COLUMN_NAME, COLUMN_AGE }, COLUMN_NAME + "=?",// new String[] { "李四" }, null, null, null);if (cursor != null) {ListAdapter adapter = new SimpleCursorAdapter(this,R.layout.ss, cursor, new String[] { COLUMN_ID,COLUMN_NAME, COLUMN_AGE },new int[] { R.id.TextView1, R.id.TextView2,R.id.TextView3 });lv.setAdapter(adapter);}} catch (Exception ex) {this.ShowDialog("查询数据异常:" + ex.getMessage());}}/** * 删除表 */private void DropTable(){try{String sql = "DROP TABLE "+TABLE_NAME;mSQLiteDatabase.execSQL(sql);}catch(Exception ex){this.ShowDialog("删除表异常:"+ex.getMessage());}}/** * 删除数据库 */private void DropDatabase(){try{this.deleteDatabase(DATABASE_NAME);}catch(Exception ex){this.ShowDialog("删除数据库异常:"+ex.getMessage());}}/** * 提示对话框 * @param msg */private void ShowDialog(String msg) {new AlertDialog.Builder(this).setTitle("提示").setMessage(msg).setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).show();}}


2.main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="@string/hello" /><ListView android:id="@+id/ListView01" android:layout_width="fill_parent"android:layout_height="wrap_content"></ListView></LinearLayout>


3.ss.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="fill_parent"android:paddingTop="5dip" android:paddingBottom="5dip" android:paddingLeft="5dip"android:layout_height="wrap_content"><TextView android:id="@+id/TextView1" android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="" /><TextView android:id="@+id/TextView2" android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20px" android:layout_marginLeft="50dip" android:paddingRight="50dip"android:text="" /><TextView android:id="@+id/TextView3" android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="" /></LinearLayout>

更多相关文章

  1. android 数据库操作
  2. Android(安卓)保存浏览记录 SharedPreTools
  3. Android与(Servlet)服务器交互
  4. Android(安卓)ProtoBuf
  5. Android(安卓)Network数据存储
  6. Android(安卓)将asserts文件夹内文件写入SD卡中
  7. Android腾讯微薄客户端开发十三:提及篇(与我有关的微博)
  8. Android(安卓)ExpandableListActivity 学习笔记
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. 整理 酷炫 Android 开源UI框架 表格
  2. Android systemserver 解析
  3. 全面了解Android热修复技术
  4. 2013.08.08——— android 中文简繁体转
  5. Android 自定义CheckBox 样式
  6. 关于CoordinatorLayout展开与折叠相关属
  7. Android中向服务器上传图片
  8. Android Layout_weight 属性
  9. Android(安卓)配置PhoneGap开发环境
  10. Android之-----GridView使用的方法总结