常用数据库创建,增删改查操作:
1.创建数据库
创建一个继承自SQLiteOpenHelper的类,在onCreate()方法中执行创建数据库语句,具体代码如下:
public class Db extends SQLiteOpenHelper {
//数据库的构造方法,用来定义数据库的名称,数据库查询结果集,数据库的版本 public db(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, "users", null, 1); }
//数据库第一次被创建时调用该方法 @Override public void onCreate(SQLiteDatabase db) {
//初始化数据库表结构,执行一条建表的SQL语句 db.execSQL("CREATE TABLE users( " + "username TEXT DEFAULT \"\","+ "userpwd TEXT DEFAULT \"\")"); }
//当数据库的版本号增加时调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
注:在虚拟机上运行时,创建的数据库要在DDMS中找
2.增加数据
public class MainActivity extends AppCompatActivity { private Db db; private SQLiteDatabase dbWrite; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
//获取一个Db 对象
db = new Db(this); dbWrite = db.getWritableDatabase(); //将参数名和列添加到ContentValues对象中 ContentValues cv = new ContentValues(); cv.put("username","abc"); cv.put("userpwd",123); //插入数据到数据库 dbWrite.insert("users",null,cv);
db.close();}}
注:使用完SQLiteDatabase对象后一定要关闭,否则数据库一直存在,消耗内存,当内存不足时会获取不到SQLiteDatabase对象
3.修改数据
public int update(String name,String newnumber){ //获取一个Db对象 db = new Db(this); //将参数名和列添加到ContentValues对象中 ContentValues cv = new ContentValues(); cv.put("username",newnumber); //执行修改 int number = db.getWritableDatabase().update("users",cv,"name=?",new String[]{name}); db.close(); return number; }
4.删除数据
public int delete(String name) { //获取一个Db对象 db = new Db(this); //删除数据 int number = db.getWritableDatabase().delete("users", "username=?", new String[]{name}); //关闭数据库 db.close(); return number; }
5.查询数据
public void find(String name){ //获取Db 对象 db = new Db(this); dbRead = db.getReadableDatabase(); //查询数据库全部数据 Cursor c = dbRead.query("users",null,null,null,null,null,null); /* 查询指定数据 Cursor c = dbRead.query(表名,null,列名("username=?"),查询的值(String[]{"abc"}),null,null,null); */ //如果c的下一项还有就执行 while(c.moveToNext()){ //获取"username"列数据 String uname = c.getString(c.getColumnIndex("username")); //获取"userpwd"列数据 String upwd = c.getString(c.getColumnIndex("userpwd")); } db.close(); }