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); } }
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); } }
/**创建一张表的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";
mDb.execSQL(NAME_TABLE_CREATE);
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); } }
public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);
参数说明:
table:数据库表的名称
columns:数据库列名称数组 写入后最后返回的Cursor中只能查到这里的列的内容
selection:查询条件
selectionArgs:查询结果
groupBy:分组列
having:分组条件
orderBy:排序列
limit:分页查询限制
Cursor:返回值,将查询到的结果都存在Cursor
Cursor是一个游标接口,每次查询的结果都会保存在Cursor中 可以通过遍历Cursor的方法拿到当前查询到的所有信息。
Cursor的方法
moveToFirst() //将Curor的游标移动到第一条private void query(SQLiteDatabase db) { // 把整张表的所有数据query到cursor中 Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null); //判断cursor不为空 这个很重要 if (cursor != null) { // 循环遍历cursor while (cursor.moveToNext()) { // 拿到每一行name 与hp的数值 String name = cursor.getString(cursor.getColumnIndex("name")); String hp = cursor.getString(cursor.getColumnIndex("hp")); Log.v("info", "姓名是 " + name + "hp为 " + hp); } // 关闭 cursor.close(); } }
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; } }
public void find() { Cursor cursor = mDb.query(TABLE_NAME, new String[] {"name","hp"}, null, null, null, null, null); while(cursor.moveToNext()) { String name = cursor.getString(0); String hp = cursor.getString(1); Log.v("info", "name is "+name); Log.v("info", "hp is "+hp); } }