ControlActivity.java
package cn.m15.xys; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * * @author 宣雨松 * email:xuanyusong@gmail.com * blog:http://blog.csdn.net/xys289187120 */ public class ControlActivity extends Activity { Context mContext = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mContext = this; /**创建与删除数据库**/ Button botton0 = (Button)findViewById(R.id.button0); botton0.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(mContext,NewSQLite.class); startActivity(intent); } }); /**创建与删除数据库中的元素**/ Button botton1 = (Button)findViewById(R.id.button1); botton1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(mContext,NewTable.class); startActivity(intent); } }); /**增 删 改 查 数据库表中的内容**/ Button botton2 = (Button)findViewById(R.id.button2); botton2.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(mContext,Newdate.class); startActivity(intent); } }); } }
DatabaseHelper.java
package cn.m15.xys; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { private static DatabaseHelper mInstance = null; /** 数据库名称 **/ public static final String DATABASE_NAME = "xys.db"; /** 数据库版本号 **/ private static final int DATABASE_VERSION = 1; /**数据库SQL语句 添加一个表**/ private static final String NAME_TABLE_CREATE = "create table test(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT,"+"hp INTEGER DEFAULT 100,"+ "mp INTEGER DEFAULT 100," + "number INTEGER);"; DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } /**单例模式**/ static synchronized DatabaseHelper getInstance(Context context) { if (mInstance == null) { mInstance = new DatabaseHelper(context); } return mInstance; } @Override public void onCreate(SQLiteDatabase db) { /**向数据中添加表**/ db.execSQL(NAME_TABLE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { /**可以拿到当前数据库的版本信息 与之前数据库的版本信息 用来更新数据库**/ } /** * 删除数据库 * @param context * @return */ public boolean deleteDatabase(Context context) { return context.deleteDatabase(DATABASE_NAME); } }
创建或打开一个已有数据库
NewSQLite.java
package cn.m15.xys; import android.app.Activity; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class NewSQLite extends Activity { DatabaseHelper mDbHelper = null; SQLiteDatabase mDb = null; Context mContext = null; @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.create_sql); mContext = this; //创建DatabaseHelper对象 mDbHelper = DatabaseHelper.getInstance(mContext); //调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开 mDb= mDbHelper.getReadableDatabase(); Button button0 = (Button)findViewById(R.id.createDateBase); button0.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(NewSQLite.this, "成功创建数据库", Toast.LENGTH_LONG).show(); } }); Button button1 = (Button)findViewById(R.id.deleteDateBase); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { mDbHelper = DatabaseHelper.getInstance(mContext); // 调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开 mDb = mDbHelper.getReadableDatabase(); // 关闭数据库 mDbHelper.close(); // 删除数据库 mDbHelper.deleteDatabase(mContext); Toast.makeText(NewSQLite.this, "成功删除数据库", Toast.LENGTH_LONG).show(); } }); super.onCreate(savedInstanceState); } }
建表 NewTable.java
package cn.m15.xys; import android.app.Activity; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class NewTable extends Activity { DatabaseHelper mDbHelper = null; SQLiteDatabase mDb = null; Context mContext = null; /**创建一张表的SQL语句**/ private static final String NAME_TABLE_CREATE = "create table gameInfo(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT,"+ "hp INTEGER DEFAULT 100,"+ "mp INTEGER DEFAULT 100," + "number INTEGER);"; /**删除一张表的SQL语句**/ private static final String NAME_TABLE_DELETE = "DROP TABLE gameInfo"; @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.create_table); mContext = this; mDbHelper = DatabaseHelper.getInstance(mContext); mDb= mDbHelper.getReadableDatabase(); Button button0 = (Button)findViewById(R.id.createTable); button0.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { try { mDb.execSQL(NAME_TABLE_CREATE); Toast.makeText(NewTable.this, "成功添加数据表", Toast.LENGTH_LONG).show(); }catch(SQLiteException e) { Toast.makeText(NewTable.this, "数据库中已存此表", Toast.LENGTH_LONG).show(); } } }); Button button1 = (Button)findViewById(R.id.deleteTable); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { try { mDb.execSQL(NAME_TABLE_DELETE); Toast.makeText(NewTable.this, "成功删除数据表", Toast.LENGTH_LONG).show(); }catch(SQLiteException e) { Toast.makeText(NewTable.this, "数据库中已无此表", Toast.LENGTH_LONG).show(); } } }); super.onCreate(savedInstanceState); } }
数据操作
Newdate.java
package cn.m15.xys; import android.app.Activity; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Newdate extends Activity { DatabaseHelper mDbHelper = null; SQLiteDatabase mDb = null; Context mContext = null; /**数据库字段**/ public final static String TABLE_NAME ="test"; public final static String ID ="_id"; public final static String NAME ="name"; public final static String HP ="hp"; public final static String MP ="mp"; @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.create_date); mContext = this; //创建DatabaseHelper对象 mDbHelper = DatabaseHelper.getInstance(mContext); //调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开 mDb= mDbHelper.getReadableDatabase(); //初始化 给数据库表写入一些信息 for(int i=0; i<10; i++) { insert(NAME,"雨松MOMO" + i); } //增加 Button button0 = (Button)findViewById(R.id.add); button0.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { insert(NAME,"新添加小可爱"); Toast.makeText(Newdate.this, "添加一条数据名称为小可爱", Toast.LENGTH_LONG).show(); } }); //删除 Button button1 = (Button)findViewById(R.id.delete); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { delete(ID,"1"); Toast.makeText(Newdate.this, "删除一条_id=1的数据", Toast.LENGTH_LONG).show(); } }); //修改 Button button2 = (Button)findViewById(R.id.modify); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { update(NAME,"雨松MOMO3","小可爱3"); Toast.makeText(Newdate.this, "更新名称雨松MOMO3 为小可爱3", Toast.LENGTH_LONG).show(); } }); //查找 Button button3 = (Button)findViewById(R.id.find); button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Cursor cursor = find(ID,"5"); String name = cursor.getString(cursor.getColumnIndex(NAME)); Toast.makeText(Newdate.this, "查找ID为5数据的名称是 " + name, Toast.LENGTH_LONG).show(); } }); super.onCreate(savedInstanceState); } /** * 插入一条数据 * @param key * @param date */ public void insert(String key, String date) { ContentValues values = new ContentValues(); values.put(key, date); mDb.insert(TABLE_NAME, null, values); } /** * 删除一掉数据 * @param key * @param date */ public void delete(String key, String date) { mDb.delete(TABLE_NAME, key+"=?", new String[] {date}); } /** * 更新一条数据 * @param key * @param oldDate * @param newDate */ public void update(String key, String oldDate,String newDate) { ContentValues values = new ContentValues(); values.put(key, newDate); mDb.update(TABLE_NAME, values, key+"=?", new String[] {oldDate}); } /** * 查找一条数据 * @param key * @param date * @return */ public Cursor find(String key ,String date) { Cursor cursor = mDb.query(TABLE_NAME, null, key+"=?", new String[] {date}, null, null, null); if(cursor != null) { cursor.moveToFirst(); } return cursor; } }