一、代码
1.xml
(1)activity_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"
>
<Button
android:id="@+id/createDatabase"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="createDatabase"
/> <Button
android:id="@+id/updateDatabase"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="updateDatabase"
/> <Button
android:id="@+id/insert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="insert"/>
<Button
android:id="@+id/update"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="update"/>
<Button
android:id="@+id/query"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="query"/> </LinearLayout>

2.java
(1)MainActivity.java

 package com.example.s01_original_e16_sqlite;

 import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
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 { /** 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.activity_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对象
DBHelper dbHelper = new DBHelper(MainActivity.this, "my_sqlite_db");
//只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,才会创建,或打开一个数据库
SQLiteDatabase db = dbHelper.getReadableDatabase();
}
}
class UpdateListener implements OnClickListener{ @Override
public void onClick(View v) {
DBHelper dbHelper = new DBHelper(MainActivity.this,"my_sqlite_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");
DBHelper dbHelper = new DBHelper(MainActivity.this,"my_sqlite_db",2);
SQLiteDatabase db = dbHelper.getWritableDatabase();
//调用insert方法,就可以将数据插入到数据库当中
db.insert("user", null, values);
}
}
//更新操作就相当于执行SQL语句当中的update语句
//UPDATE table_name SET XXCOL=XXX WHERE XXCOL=XX...
class UpdateRecordListener implements OnClickListener{ @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//得到一个可写的SQLiteDatabase对象
DBHelper dbHelper = new DBHelper(MainActivity.this,"my_sqlite_db",2);
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"); DBHelper dbHelper = new DBHelper(MainActivity.this,"my_sqlite_db",2);
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);
}
}
} }

(2)DBHelper.java

 package com.example.s01_original_e16_sqlite;

 import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper; public class DBHelper extends SQLiteOpenHelper { private static final int VERSION = 1;
//在SQLiteOepnHelper的子类当中,必须有该构造函数
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
//必须通过super调用父类当中的构造函数
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
public DBHelper(Context context,String name){
this(context,name,VERSION);
}
public DBHelper(Context context,String name,int version){
this(context, name,null,version);
} //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
System.out.println("create a Database");
//execSQL函数用于执行SQL语句
db.execSQL("create table user(id int,name varchar(20))");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
System.out.println("update a Database");
} }

最新文章

  1. FMDB基本应用
  2. java-Filter
  3. POJ3107 (树的重心)
  4. ALM/QC OTA Field in Database(查询ALM数据库的字段)
  5. Android_listview设置每条信息的间距
  6. 3754. 【NOI2014】魔法森林(LCT)
  7. SQL-50 将employees表中的所有员工的last_name和first_name通过(&#39;)连接起来
  8. 如何在C++中使用动态三维数组
  9. 基于javaMail的邮件发送--excel作为附件
  10. MySQL数据库之安装
  11. VBA中FIND方法的使用说明zz
  12. Android Studio安装配置
  13. JS代码判断IE6,IE7,IE8,IE9
  14. 【SPOJ10707】 COT2 Count on a tree II
  15. 【Python】【元编程】【三】【元类】
  16. ADB故障时的一些命令
  17. 遇到问题描述:Android Please ensure that adb is correctly located at问题解决
  18. Linux下TCP最大连接数受限问题
  19. 中南月赛 1313: ZZY的宠物
  20. 到底什么是dp思想(内含大量经典例题,附带详细解析)

热门文章

  1. JavaScript高级程序设计(八):基本概念--操作符
  2. makefile文件制作入门
  3. Project Israfil -- 支持多个音乐平台的开源音乐服务
  4. sgu 108 Self-numbers II
  5. wifidog编译到openwrt
  6. Linux+svn无法显示日志
  7. winform水晶报表编译错误,未能加载文件或程序集&quot;file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framewor &quot;
  8. thymeleaf 基本语法
  9. 前端资源多个产品整站一键打包&amp;包版本管理(二)——如何在bower的配置文件加上注释
  10. 支持阻塞操作和轮询操作的globalfifo设备驱动代码分析以及测试代码