免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1502 | 回复: 0
打印 上一主题 下一主题

Android中SQLite的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-23 11:20 |只看该作者 |倒序浏览
Android中SQLite的使用







<1>创建数据库

<2>更新数据库

<3>删除数据库

<4>创建数据表

<5>删除数据表

<6>增加数据

<7>更新数据

<8>删除数据



strings.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="app_name">SQLite</string>
  4. <string name="careteDataBase">创建数据库</string>
  5. <string name="updateDataBase">更新数据库</string>
  6. <string name="deleteDataBase">删除数据库</string>
  7. <string name="createTable">创建数据表</string>
  8. <string name="deleteTable">删除数据表</string>
  9. <string name="insertData">增加数据</string>
  10. <string name="updateData">更新数据</string>
  11. <string name="selectData">查询数据</string>
  12. <string name="deleteData">删除数据</string>
  13. </resources>


  14. main.xml

  15. <?xml version="1.0" encoding="utf-8"?>
  16. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  17. android:orientation="vertical" android:layout_width="fill_parent"
  18. android:layout_height="fill_parent">

  19. <!-- 创建数据库 -->
  20. <Button android:id="@+id/careteDataBaseButtonId"
  21.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  22.   android:layout_margin="10px" android:layout_gravity="center"
  23.   android:gravity="center" android:text="@string/careteDataBase" />

  24. <!-- 更新数据库 -->
  25. <Button android:id="@+id/updateDataBaseButtonId"
  26.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  27.   android:layout_margin="10px" android:layout_gravity="center"
  28.   android:gravity="center" android:text="@string/updateDataBase" />

  29. <!-- 删除数据库 -->
  30. <Button android:id="@+id/deleteDataBaseButtonId"
  31.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  32.   android:layout_margin="10px" android:layout_gravity="center"
  33.   android:gravity="center" android:text="@string/deleteDataBase" />

  34. <!-- 创建数据表 -->
  35. <Button android:id="@+id/createTableButtonId"
  36.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  37.   android:layout_margin="10px" android:layout_gravity="center"
  38.   android:gravity="center" android:text="@string/createTable" />

  39. <!-- 删除数据表 -->
  40. <Button android:id="@+id/deleteTableButtonId"
  41.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  42.   android:layout_margin="10px" android:layout_gravity="center"
  43.   android:gravity="center" android:text="@string/deleteTable" />

  44. <!-- 增加数据 -->
  45. <Button android:id="@+id/insertDataButtonId"
  46.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  47.   android:layout_margin="10px" android:layout_gravity="center"
  48.   android:gravity="center" android:text="@string/insertData" />

  49. <!-- 更新数据 -->
  50. <Button android:id="@+id/updateDataButtonId"
  51.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  52.   android:layout_margin="10px" android:layout_gravity="center"
  53.   android:gravity="center" android:text="@string/updateData" />

  54. <!-- 查询操作 -->
  55. <Button android:id="@+id/selectDataButtonId"
  56.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  57.   android:layout_margin="10px" android:layout_gravity="center"
  58.   android:gravity="center" android:text="@string/selectData" />

  59. <!-- 删除操作 -->
  60. <Button android:id="@+id/deleteDataButtonId"
  61.   android:layout_width="fill_parent" android:layout_height="wrap_content"
  62.   android:layout_margin="10px" android:layout_gravity="center"
  63.   android:gravity="center" android:text="@string/deleteData" />

  64. </LinearLayout>



  65. SQLiteActivity.java

  66. package com.duoguo.android;

  67. import android.app.Activity;
  68. import android.content.ContentValues;
  69. import android.database.Cursor;
  70. import android.database.sqlite.SQLiteDatabase;
  71. import android.os.Bundle;
  72. import android.view.View;
  73. import android.view.View.OnClickListener;
  74. import android.widget.Button;

  75. import com.duoguo.sql.DataBaseHelpr;

  76. /**
  77. * Android系统中的增删查该等操作
  78. *
  79. * @author shyboy(897948924@qq.com)
  80. *
  81. */
  82. public class SQLiteActivity extends Activity {

  83. // 声明Button控件
  84. private Button createDataBaseButton;
  85. private Button updateDataBaseButton;
  86. private Button deleteDataBaseButton;

  87. private Button createTableButton;
  88. private Button deleteTableButton;

  89. private Button insertDataButton;
  90. private Button updataDataButton;
  91. private Button selectDataButton;
  92. private Button deleteDataButton;

  93. @Override
  94. public void onCreate(Bundle savedInstanceState) {

  95.   super.onCreate(savedInstanceState);
  96.   setContentView(R.layout.main);

  97.   // 通过控件的ID获取Button控件对象
  98.   createDataBaseButton = (Button) findViewById(R.id.careteDataBaseButtonId);
  99.   updateDataBaseButton = (Button) findViewById(R.id.updateDataBaseButtonId);
  100.   deleteDataBaseButton = (Button) findViewById(R.id.deleteDataBaseButtonId);

  101.   createTableButton = (Button) findViewById(R.id.createTableButtonId);
  102.   deleteTableButton = (Button) findViewById(R.id.deleteTableButtonId);

  103.   insertDataButton = (Button) findViewById(R.id.insertDataButtonId);
  104.   updataDataButton = (Button) findViewById(R.id.updateDataButtonId);
  105.   selectDataButton = (Button) findViewById(R.id.selectDataButtonId);
  106.   deleteDataButton = (Button) findViewById(R.id.deleteDataButtonId);

  107.   createDataBaseButton
  108.     .setOnClickListener(new CreateDataBaseClickListener());// 为创建数据库添加单击事件监听器
  109.   updateDataBaseButton
  110.     .setOnClickListener(new UpdateDataBaseClickListener());// 为更新数据库添加单击事件监听器
  111.   deleteDataBaseButton
  112.     .setOnClickListener(new DeleteDataBaseClickListener());// 为删除数据库添加单击事件监听器

  113.   createTableButton.setOnClickListener(new CreateTableClickListener());// 为创建数据表添加单击事件监听器
  114.   deleteTableButton.setOnClickListener(new DeleteTableClickListener());// 为删除数据表添加单击事件监听器

  115.   insertDataButton.setOnClickListener(new InsertDataClickListener());// 为增加数据添加单击事件监听器
  116.   updataDataButton.setOnClickListener(new UpdateDataClickListener());// 为更新数据添加单击事件监听器
  117.   selectDataButton.setOnClickListener(new SelectDataClickListener());// 为查询数据添加单击事件监听器
  118.   deleteDataButton.setOnClickListener(new DeleteDataClickListener());// 为删除数据添加单击事件监听器

  119. }

  120. // 创建数据库监听器
  121. class CreateDataBaseClickListener implements OnClickListener {

  122.   @Override
  123.   public void onClick(View v) {

  124.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  125.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  126.    dataBaseHelpr.getReadableDatabase();// 创建数据库

  127.   }

  128. }

  129. // 更新数据库监听器
  130. class UpdateDataBaseClickListener implements OnClickListener {

  131.   @Override
  132.   public void onClick(View v) {

  133.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  134.      SQLiteActivity.this, "user_db", 2);// 实例化DataBaseHelpr对象
  135.    dataBaseHelpr.getReadableDatabase();// 更新数据库

  136.   }

  137. }

  138. // 删除数据库监听器
  139. class DeleteDataBaseClickListener implements OnClickListener {

  140.   @Override
  141.   public void onClick(View v) {

  142.    System.out.println("delete database");

  143.    boolean success = deleteDatabase("user_db");
  144.    if (success) {
  145.     System.out.println("delete successfully");
  146.    } else {
  147.     System.out.println("delete unsuccessfully");
  148.    }

  149.   }

  150. }

  151. // 创建数据表监听器
  152. class CreateTableClickListener implements OnClickListener {

  153.   @Override
  154.   public void onClick(View v) {

  155.    System.out.println("create table");
  156.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  157.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  158.    SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象
  159.    sqLiteDatabase
  160.      .execSQL("create table user(id int,name varchar(20))");// 创建数据表

  161.   }

  162. }

  163. // 删除数据表监听器
  164. class DeleteTableClickListener implements OnClickListener {

  165.   @Override
  166.   public void onClick(View v) {

  167.    System.out.println("delete table");
  168.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  169.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  170.    SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象
  171.    sqLiteDatabase.execSQL("drop table if exists user");// 删除数据表

  172.   }

  173. }

  174. // 增加数据监听器
  175. class InsertDataClickListener implements OnClickListener {

  176.   @Override
  177.   public void onClick(View v) {

  178.    System.out.println("insert data");
  179.    ContentValues contentValues = new ContentValues();// 实例化ContentValues对象

  180.    // 向数据表中插入相应的数据,其中key是列名,value是列名对应的值
  181.    contentValues.put("id", 1);
  182.    contentValues.put("name", "shyboy");

  183.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  184.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  185.    SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象,因要插入相应的数据,故获取可写入的
  186.    sqLiteDatabase.insert("user", null, contentValues);// 增加数据

  187.   }

  188. }

  189. // 更新数据监听器
  190. class UpdateDataClickListener implements OnClickListener {

  191.   @Override
  192.   public void onClick(View v) {

  193.    System.out.println("update data");
  194.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  195.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  196.    SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象,因要更新相应的数据,故获取可写入的

  197.    ContentValues contentValues = new ContentValues();// 实例化ContentValues对象
  198.    contentValues.put("name", "playboy");

  199.    sqLiteDatabase.update("user", contentValues, "id=?",
  200.      new String[] { "1" });// 更新数据,其中参数一为表名,参数二为修改的值,参数三为修改的条件,参数四位修改的条件值

  201.   }

  202. }

  203. // 查询数据监听器
  204. class SelectDataClickListener implements OnClickListener {

  205.   @Override
  206.   public void onClick(View v) {

  207.    System.out.println("select data");
  208.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  209.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  210.    SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getReadableDatabase();// 获取SQLiteDatabase对象
  211.    Cursor cursor = sqLiteDatabase.query("user", new String[] { "id",
  212.      "name" }, "id=?", new String[] { "1" }, null, null, null);// 查询数据

  213.    while (cursor.moveToNext()) {
  214.     int id = cursor.getInt(cursor.getColumnIndex("id"));// 获取编号
  215.     System.out.println("id:" + id);
  216.     String name = cursor.getString(cursor.getColumnIndex("name"));// 获取名称
  217.     System.out.println("name:" + name);
  218.    }

  219.   }

  220. }

  221. // 删除数据监听器
  222. class DeleteDataClickListener implements OnClickListener {

  223.   @Override
  224.   public void onClick(View v) {

  225.    System.out.println("delete data");
  226.    DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(
  227.      SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象
  228.    SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象
  229.    sqLiteDatabase.delete("user", "id=?", new String[] { "1" });// 删除数据

  230.   }

  231. }

  232. }



  233. DataBaseHelpr.java

  234. /**
  235. *
  236. */
  237. package com.duoguo.sql;

  238. import android.content.Context;
  239. import android.database.sqlite.SQLiteDatabase;
  240. import android.database.sqlite.SQLiteDatabase.CursorFactory;
  241. import android.database.sqlite.SQLiteOpenHelper;

  242. /**
  243. * SQLiteOpenHelper的使用
  244. *
  245. * @author shyboy(897948924@qq.com)
  246. *
  247. */
  248. public class DataBaseHelpr extends SQLiteOpenHelper {

  249. private static final int VERSION = 1;// 声明数据库的版本为1

  250. /**
  251.   * 第一构造方法
  252.   *
  253.   * @param context
  254.   *            :当前的Activity
  255.   * @param name
  256.   *            :数据库名称
  257.   * @param factory
  258.   *            :用于查询时返回相应的值
  259.   * @param version
  260.   *            :数据库版本
  261.   */
  262. public DataBaseHelpr(Context context, String name, CursorFactory factory,
  263.    int version) {

  264.   super(context, name, factory, version);// 继承父类的构造方法

  265. }

  266. /**
  267.   * 第二构造方法
  268.   *
  269.   * @param context
  270.   *            :当前的Activity
  271.   * @param name
  272.   *            :数据库名称
  273.   * @param version
  274.   *            :数据库版本
  275.   */
  276. public DataBaseHelpr(Context context, String name, int version) {

  277.   this(context, name, null, version);// 调用第一构造方法

  278. }

  279. /**
  280.   * 第三构造方法
  281.   *
  282.   * @param context
  283.   *            :当前的Activity
  284.   * @param name
  285.   *            :数据库名称
  286.   */
  287. public DataBaseHelpr(Context context, String name) {

  288.   this(context, name, VERSION);// 调用第二构造方法

  289. }

  290. /*
  291.   * (non-Javadoc)
  292.   *
  293.   * @see
  294.   * android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite
  295.   * .SQLiteDatabase) 该方法在第一次创建数据库时执行,用于创建数据表
  296.   */
  297. @Override
  298. public void onCreate(SQLiteDatabase arg0) {

  299.   System.out.println("create a database");
  300.   arg0.execSQL("create table user(id int,name varchar(20))");// 执行sql语句

  301. }

  302. /*
  303.   * (non-Javadoc)
  304.   *
  305.   * @see
  306.   * android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite
  307.   * .SQLiteDatabase, int, int) 该方法用于更新数据库
  308.   */
  309. @Override
  310. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

  311.   System.out.println("update a database");

  312. }

  313. }
复制代码
希望对你有所帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP