数据库的增删改查

1.运行效果图



2.代码

MainActivity.java
package cn.edu.bzu.sqlite;

import android.os.Bundle;
import android.util.Log;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
//import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private MyDatabaseHelper dbHelper;

//	@SuppressWarnings("unused")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 4);
		Button createDatabase = (Button) findViewById(R.id.create_database);
		Button addData = (Button) findViewById(R.id.add_data);
		Button updateData = (Button) findViewById(R.id.update_data);
		Button deleteData = (Button) findViewById(R.id.delete_data);
		Button queryData = (Button) findViewById(R.id.query_data);
		createDatabase.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				dbHelper.getWritableDatabase();
			}
		});

		addData.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				ContentValues values = new ContentValues();
				// start to fix the first data
				values.put("name", "The Da Vinci Code");
				values.put("author", "Dan Brown");
				values.put("pages", 454);
				values.put("price", 16.96);
				db.insert("Book", null, values);// insert the first data
				values.clear();
				// start to fix the second data
				values.put("name", "The Blue Ocean");
				values.put("author", "Yuki son");
				values.put("pages", 123);
				values.put("price", 7.8);
				db.insert("Book", null, values);// insert the second data
				values.clear();
			}
		});

		updateData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				ContentValues values = new ContentValues();
				values.put("price", 9.99);
				db.update("Book", values, "name=?", new String[] { "The Da Vinci Code" });

			}
		});
		deleteData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				db.delete("Book", " pages > ?", new String[] { "123" });

			}
		});
		queryData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				//search all the datas' of this table
				Cursor cursor = db.query("Book", null, null, null, null, null, null);
				if(cursor.moveToFirst()){do{
					//go through "Cursor",get the data and print it
					String  name = cursor.getString(cursor.getColumnIndex("name"));
					String author = cursor.getString(cursor.getColumnIndex("author"));
					int pages = cursor.getInt(cursor.getColumnIndex("pages"));
					double price = cursor.getDouble(cursor.getColumnIndex("price"));
					Log.d("MainActivity", "book name is"+name);
					Log.d("MainActivity","book author is"+author);
					Log.d("MainActivity","book pages is"+pages);
					Log.d("MainActivity", "book price"+price);
				}while(cursor.moveToNext());
				}cursor.close();
			}
		});
	}
}
MyDatabaseHelper.java
package cn.edu.bzu.sqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

public class MyDatabaseHelper extends SQLiteOpenHelper
{

public static final String CREATE_BOOK = "create table book(id integer primary key autoincrement, " +
		"author text," +
		"price real," +
		"pages integer," +
		"name text)";
public static final String CREATR_CATEGORY = "create table Category(id integer primary key autoincrement," +
		"category_name text," +
		"category_code integer)";
private Context mContext;
public MyDatabaseHelper(Context context, String name,
		CursorFactory factory, int version)
{
	super(context, name, factory, version);
	// TODO Auto-generated constructor stub
	mContext = context;
	
}
@Override
public void onCreate(SQLiteDatabase db)
{
	
	// TODO Auto-generated method stub
	db.execSQL(CREATE_BOOK);
	db.execSQL(CREATR_CATEGORY);
	Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();
	
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
	// TODO Auto-generated method stub
	db.execSQL("drop table if exists book");
	db.execSQL("drop table if exists category");
	onCreate(db);
	
	
}

}
SQLiteOpenHelperActivity.java
package cn.edu.bzu.sqlite;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class SQLiteOpenHelperActivity extends Activity
{

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sqlite_open_helper);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.sqlite_open_helper, menu);
		return true;
	}

}
activity_main.xml
<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:orientation = "vertical" >

    <Button
        android:id="@+id/create_database"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn" />

    <Button
        android:id="@+id/add_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/create_database"
        android:layout_centerHorizontal="true"
        android:text="@string/btn2" />

    <Button
        android:id="@+id/update_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/add_data"
        android:layout_centerHorizontal="true"
        android:text="@string/btn3" />

    <Button
        android:id="@+id/delete_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/update_data"
        android:layout_centerHorizontal="true"
        android:text="@string/btn4" />

    <Button
        android:id="@+id/query_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/delete_data"
        android:layout_centerHorizontal="true"
        android:text="@string/btn5" />

</RelativeLayout>
activity_sqlite_open_helper.xml
<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=".SQLiteOpenHelperActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>
Strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">SQLite</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_sqlite_open_helper">SQLiteOpenHelperActivity</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="btn">Create database</string>
    <string name="btn2">Add data</string>
    <string name="btn3">Update data</string>
    <string name="btn4">Delete data</string>
    <string name="btn5">Query data</string>

</resources>
3.遇到的问题及心得体会




<1>因为自己手敲的代码,没有用系统自己生成的,所以在写Cursor代码段的时候,把Cursor打成了Cusor,出现了错误,反复检查了好多遍都没有检查出来,浪费了很多时间。所以,以后可以用快捷键生成的尽量不会用手打了,因为人的习惯,自己检查的时候很难检查出来。
<2>另外,因为我修改环境变量的时候把原有的path给全部删掉了,并且没有备份,所以再次启动eclipse的时候,出现了异常,检索不到模拟器的文件的路径,后来又添加了classpath,和homepath,重新修改了path,才算解决了问题。所以以后修改路径时,要么多做一份备份,要么把要添加的路径用%缀在后面,不然会像这次一样遇到很多不必要的麻烦。
<3>还有,今天才遇到,不然很可能会一直不知道。我运行程序的时候,没有选中模拟器,所以logcat和FileExplore都没有记录。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值