SQlife(数据库)

public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//每个程序都有自己的数据库 默认情况下是各自互相不干扰
	    //创建一个数据库 并且打开
		SQLiteDatabase db=openOrCreateDatabase("user.db", MODE_PRIVATE, null);
		db.execSQL("create table if not exists usertb(_id integer primary key autoincrement, name text not null, age integer not null,sex text not null)");//在数据库里建表
		/*
		 * 第一种往表里增加数据的方法
		 */
//		db.execSQL("insert into usertb(name,sex,age) values('张三','男',66)");
//		db.execSQL("insert into usertb(name,sex,age) values('李四','男',22)");
//		db.execSQL("insert into usertb(name,sex,age) values('王五','男',33)");
//		db.execSQL("insert into usertb(name,sex,age) values('老王他老婆','女',45)");
<img src="https://img-blog.csdn.net/20150719011908954?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
		/*
		 * 第二种往表里增加数据的方法
		 */
		ContentValues values=new ContentValues();/*ContentValues类和Hashtable比较类似,
		                                                             它也是负责存储一些键值对,
		                    但是它存储的键值对当中的键是一个String类型,而值都是基本类型。*/
		values.put("name", "张三");//语句将列名和对应的列值放置到Values里边。
		values.put("sex", "男");
		values.put("age", 21);
		long rowId=db.insert("usertb", null, values);//语句负责插入一条新的纪录,如果插入成功则会返回这条记录的id,如果插入失败会返回-1。
		values.clear();//清除values里的内容,也可以重新创建ContentValues对象
		values.put("name", "王二");
		values.put("sex", "男");
		values.put("age", 29);
		db.insert("stutb", null, values);
		values.clear();values.put("name", "小脑");
		values.put("sex", "女");
		values.put("age", 25);
		db.insert("stutb", null, values);
		values.clear();values.put("name", "小鱼");
		values.put("sex", "男");
		values.put("age", 18);
		db.insert("stutb", null, values);
		values.clear();
		values.put("name", "田湾");
		values.put("sex", "男");
		values.put("age", 23);
		db.insert("stutb", null, values);
		values.clear();
		values.put("name", "张三封");
		values.put("sex", "男");
		values.put("age", 55);
		db.insert("stutb", null, values);
		values.clear();
<img src="https://img-blog.csdn.net/20150719011933912?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
		/*
		 * 修改表里的信息
		 */
		values.put("sex", "女");
		db.update("stutb", values, "_id>?", new String[]{"2"});//将全部id>2的人的性别改成女
		/*
		 * 删除数据库信息
		 */
		db.delete("stutb", "name like ?", new String[]{"%二%"});//删除所有名字中带有二的人
		/*
		 * 查询方法1db.rawQuery()
		 */
//		Cursor c=db.rawQuery("select * from usertb", null);//查询表内所有数据
//		if(c!=null)
//		{
//			while(c.moveToNext())
//			{
//				Log.i("info","_id:"+c.getInt(c.getColumnIndex("_id")));
//				Log.i("info","name:"+c.getString(c.getColumnIndex("name")));
//				Log.i("info","name:"+c.getString(c.getColumnIndex("sex")));
//				Log.i("info","name:"+c.getString(c.getColumnIndex("age")));
//				Log.i("info","---------");
//			}
//			c.close();
//		}
//		db.close();
		/*
		 * 查询方法2db.query()
		 */
		Cursor c= db.query("stutb", null, "_id>?", new String[]{"0"}, null, null, "_id");//_id代表排序方式,也可以用name这种排序方式
		if (c!=null) {
			String [] columns= c.getColumnNames();//getColumnNames()——返回所有列的名字,getColumnCount()-返回所以列的总数
			
			while (c.moveToNext()) {
				for (String columnName : columns) //增强循环,将数组columns里的数依次取出赋值给columnName
					{
					Log.i("info", c.getString(c.getColumnIndex(columnName)));
				}
			}
			c.close();
		}
		db.close();
	}

}
//用SQLiteOpenHelper类建数据库


<pre name="code" class="java">public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		DBOpenHelper helper =	new DBOpenHelper(MainActivity.this, "stu.db");
//		helper.getReadableDatabase();//获取一个只读的数据库 只能查询 不能写入 不能更新
		SQLiteDatabase db = helper.getWritableDatabase();
//		db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)
		Cursor c = db.rawQuery("select * from stutb", null);
		if (c!=null) {
			String [] cols = c.getColumnNames();//得到所以列名
			while (c.moveToNext()) {
				for (String ColumnName : cols) //将cols数组里的元素赋值给ColumnName
				{
					Log.i("info", ColumnName+":"+c.getString(c.getColumnIndex(ColumnName)));
				}
			}
			c.close();
		}
		db.close();
	}


}

//SQLiteOpenHelper类
<pre name="code" class="java">public class DBOpenHelper extends SQLiteOpenHelper{

	public DBOpenHelper(Context context, String name) {
		super(context, name, null, 1);
		// TODO Auto-generated constructor stub
	}
	public DBOpenHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
		// TODO Auto-generated constructor stub
	}

	@Override
	//首次创建数据库的时候调用 一般是建库 建表的操作
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");
		db.execSQL("insert into stutb(name,sex,age)values('张三','女',18)");
		
	}

	@Override//当数据库的版本发生变化的时候 会自动执行
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		// TODO Auto-generated method stub
		
	}


 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值