sqlite的增删改查操作

前端之家收集整理的这篇文章主要介绍了sqlite的增删改查操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sqlite是android 轻量级数据库

主要是两个类实现创建数据库和数据的增删改查


这个类是MainActivity 是创建数据库对象,通过这个对象dbHelper调用getWritableDatabase()方法就可以去创建数据库

接下来就是对数据库的增删改查操作。getWritableDatabase()这个方法很重要 数据库的创建升级增删改查都需要这个方法。ContentValues()这个方法是用来添加数据的。


  1. package com.example.sqlitetest;
  2.  
  3. import com.example.sqlitetest.R;
  4.  
  5. import android.app.Activity;
  6. import android.content.ContentValues;
  7. import android.database.Cursor;
  8. import android.database.sqlite.sqliteDatabase;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.view.Menu;
  12. import android.view.MenuItem;
  13. import android.view.View;
  14. import android.view.View.OnClickListener;
  15. import android.widget.Button;
  16.  
  17. public class MainActivity extends Activity {
  18.  
  19. private MyDatabaseHelper dbHelper;
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. //生成数据库对象
  25. dbHelper = new MyDatabaseHelper(this,"BookStore.db",null,4);
  26. Button createDatabase = (Button) findViewById(R.id.create_database);
  27. createDatabase.setOnClickListener(new OnClickListener() {
  28. @Override
  29. public void onClick(View v) {
  30. // 创建数据库,这个方法调用MyDatabaseHelper中的onCreate()方法和onUpgrade()方法
  31. dbHelper.getWritableDatabase();
  32. }
  33. });
  34. //添加数据
  35. Button Add_date = (Button) findViewById(R.id.Add_date);
  36. Add_date.setOnClickListener(new OnClickListener() {
  37. @Override
  38. public void onClick(View v) {
  39. //getWritableDatabase()方法会返回一个sqliteDatabase对象,这个
  40. //对象可以对数据库进行增删改查的操作
  41. sqliteDatabase db = dbHelper.getWritableDatabase();
  42. //通过这个方法添加数据
  43. ContentValues values = new ContentValues();
  44. //开始组装第一条数据
  45. values.put("name","sunning");
  46. values.put("author","Dan Brown");
  47. values.put("pages","500");
  48. values.put("price","16.6");
  49. //插入第一条数据
  50. db.insert("Book",values);
  51. values.clear();
  52. //开始组装第二条数据
  53. values.put("name","leoveo");
  54. values.put("author","Frown Brown");
  55. values.put("pages","13.6");
  56. //插入第一条数据
  57. db.insert("Book",values);
  58. }
  59. });
  60. //更新数据
  61. Button Update_data = (Button) findViewById(R.id.Update_data);
  62. Update_data.setOnClickListener(new OnClickListener() {
  63. @Override
  64. public void onClick(View v) {
  65. sqliteDatabase db = dbHelper.getWritableDatabase();
  66. ContentValues values = new ContentValues();
  67. values.put("price",66.6);
  68. db.update("Book",values,"name = ?",new String[]{"sunning"});
  69. }
  70. });
  71. //删除数据
  72. Button Delete_data = (Button) findViewById(R.id.Delete_data);
  73. Delete_data.setOnClickListener(new OnClickListener() {
  74. @Override
  75. public void onClick(View v) {
  76. sqliteDatabase db = dbHelper.getWritableDatabase();
  77. db.delete("Book","pages>= ?",new String []{"500"});
  78. }
  79. });
  80. //查询数据
  81. Button Query_data = (Button) findViewById(R.id.Query_data);
  82. Query_data.setOnClickListener(new OnClickListener() {
  83. @Override
  84. public void onClick(View v) {
  85. sqliteDatabase db = dbHelper.getWritableDatabase();
  86. //查询Book表中所有的数据
  87. Cursor cursor = db.query("Book",null );
  88. //cursor.moveToFirst() 表示是否指针移动到第一行的位置
  89. if(cursor.moveToFirst()){
  90. do{
  91. //遍历Cursor对象,取出数据并打印,注意写的时候不要写错字符,要不然报错
  92. String name = cursor.getString(cursor.getColumnIndex("name"));
  93. String author = cursor.getString(cursor.getColumnIndex("author"));
  94. int pages = cursor.getInt(cursor.getColumnIndex("pages"));
  95. Double price = cursor.getDouble(cursor.getColumnIndex("price"));
  96. Log.d("MainActivity","name=="+name);
  97. Log.d("MainActivity","author=="+author);
  98. Log.d("MainActivity","pages=="+pages);
  99. Log.d("MainActivity","prices=="+price);
  100. }while(cursor.moveToNext());
  101. }
  102. cursor.close();
  103. }
  104. });
  105. }
  106.  
  107.  
  108. }



下面这个类给我的感觉像一个工具类。就是继承sqliteOpenHelper 这个类 ,覆写onCreate()方法和onUpGrade()方法,对表进行创建和升级操作。还有就是创建表的字段语句

  1. import android.content.Context;
  2. import android.database.sqlite.sqliteDatabase;
  3. import android.database.sqlite.sqliteDatabase.CursorFactory;
  4. import android.database.sqlite.sqliteOpenHelper;
  5. import android.widget.Toast;
  6.  
  7. public class MyDatabaseHelper extends sqliteOpenHelper {
  8. //创建表 书
  9. public static final String CREATE_BOOK = "create table Book ("+"id integer primary key autoincrement,"
  10. +"author text,"+"price real,"+"pages integer,"+"name text)";
  11. //创建表 书的分类
  12. public static final String CREATE_CATEGORY = "create table Category("
  13. +"id integer primary key autoincrement,"
  14. +"category_name text,"
  15. +"categoty_code integer)"
  16. ;
  17. private Context mContext;
  18.  
  19. public MyDatabaseHelper(Context context,String name,CursorFactory factory,int version) {
  20. super(context,name,factory,version);
  21. mContext = context;
  22. }
  23.  
  24. @Override
  25. public void onCreate(sqliteDatabase db) {
  26. db.execsql(CREATE_BOOK);
  27. db.execsql(CREATE_CATEGORY);
  28. Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_SHORT).show();
  29. }
  30. //表的升级
  31. @Override
  32. public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {
  33.  
  34. db.execsql("drop table if exists Book");
  35. db.execsql("drop table if exists Category");
  36. //在升级方法里面重新创建表
  37. onCreate(db);
  38. }
  39.  
  40. }




  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context="com.example.sqlitetest.MainActivity"
  6. android:orientation="vertical"
  7. >
  8.  
  9. <Button
  10. android:id="@+id/create_database"
  11. android:layout_width="match_parent"
  12. android:layout_height="wrap_content"
  13. android:text="@string/Create_database" />
  14. <Button
  15. android:id="@+id/Add_date"
  16. android:layout_width="match_parent"
  17. android:layout_height="wrap_content"
  18. android:text="@string/Add_date" />
  19. <Button
  20. android:id="@+id/Update_data"
  21. android:layout_width="match_parent"
  22. android:layout_height="wrap_content"
  23. android:text="@string/Update_data" />
  24. <Button
  25. android:id="@+id/Delete_data"
  26. android:layout_width="match_parent"
  27. android:layout_height="wrap_content"
  28. android:text="@string/Delete_data" />
  29. <Button
  30. android:id="@+id/Query_data"
  31. android:layout_width="match_parent"
  32. android:layout_height="wrap_content"
  33. android:text="@string/Query_data" />
  34.  
  35. </LinearLayout>

猜你在找的Sqlite相关文章