安卓学习笔记之SQLite数据库

下午看了这个,有点意思..

1.sqlite介绍
2.sqliteopenhelper使用方法
3.使用adb访问sqlite

SQLiteOpenHelper使用方法
getReadableDatabase()
getWritableDatabase()
//下面三个是回调函数
onCreate(SQLiteDatabase db)
onOpen(SQLiteDatabase db)
on upgrade

先得到一个sqliteopenhelper对象,//这个是抽象类
通过它的getreadableDatabase()或者
getWriteableDatabase得到一个
sqlitedatabase对象

sqlite的命令是以 .开头的.


简要学习笔记如上.


下面的写一些心得.

得到一个sqliteDatabase的步骤如下.

1.继承抽象类sqliteopenhelper

2.在另外的类中生成一个sqliteopenhelper

3.

如果只读,则

			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2); 
			SQLiteDatabase db = dh.getReadableDatabase();
如果要写入,则

			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2);
			SQLiteDatabase db = dh.getWritableDatabase();


我把继承类放下面.

/**
	 * 在sqlhelper的子类中必须有这个构造函数
	 * @param context activity对象
	 * @param name  表名
	 * @param factory 传空值
	 * @param version 当前数据库的版本, 一定是正数 并且递增
	 */
	public DatabaseHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
		//
		// TODO Auto-generated constructor stub
	}
//注意一下,version版本号一定要>=当前版本号.不然会出错.


下面写adb的简单的使用方法.

首先

adb shell //进入shell

cd data 

cd data

//到达此目录后

ls -l //找到需要进入的文件

cd xxx.xx.xxxx //data下面文件的存放都是包名

cd databases //进入这个下面.

使用 sqlite3 test_ck_db 就能进入数据库啦..

sqlite3数据库 所有的语句后面都要有个;号.这点需要注意..


然后,说说sqlite数据库用java实现简单创更增删改查


创建

class CreateDatabaseListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2); //类,数据库名字,版本号.3个组件分别对应
			SQLiteDatabase db = dh.getReadableDatabase();
			//获得一个可读的数据库
		}
    	
    }
执行这段代码后,会调用回调函数.. 也就是继承了sqliteopenhelper类的函数的抽象方法.

	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL("create table user(id int, name varchar(20))");
	}
简单的创建了一张表


更新

class updateDatabaseListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 3); //只要当前版本号,大于以前的版本号了就会更新.
			SQLiteDatabase db = dh.getReadableDatabase();
			
		}
    	
    }

执行这段代码后也,会调用回调函数.

 

//回调函数
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		//升级数据库时调动.
		System.out.println("呵呵");
	}


	class insertListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			//生成contentvalues'对象
			ContentValues values = new ContentValues();
			//向该对象中插入键值对, 其中键是列名,值是希望插入到这一列的值,
			values.put("id",1);
			values.put("name", "chenkai");
			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2); //获得一个可写的数据库的连接.
			SQLiteDatabase db = dh.getWritableDatabase();
			
			db.insert("user", null, values); //生成contentvalues对象的原因是用于 insert的第三个参数需要它,并且该对象是个键值对.
			//sql语句 insert into user values(???) id = ?, name = ?
			
			
		}


	class deleteListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2);
			SQLiteDatabase db = dh.getWritableDatabase();
			
			db.delete("user", "id=?", new String[] {"1"});
			//sql语句之删除语句delete  user where id=?
		}
    	
    }


    class updatebaseListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2);
			SQLiteDatabase db = dh.getWritableDatabase();
			//得到一个可写的连接
			ContentValues values = new ContentValues();
			values.put("name", "ck_wizard");
//			第一个参数是表名,第二个参数
			db.update("user", values, "id=?", new String[]{"1"});
			//table 要更新的表名
			//values 是一个要更新的对象
			//whereclause 是where子句
			//whereArgs 前面有几个占位符,后面就有几个string值.
			//sql语句之更新 update user set name = ? where id = ?
		}
    	
    }


class queryListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			DatabaseHelper dh = new DatabaseHelper(MainActivity.this, "test_ck_db", 2);
			SQLiteDatabase db = dh.getReadableDatabase();
			Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);
			while( cursor.moveToNext() ) {
				String name = cursor.getString(cursor.getColumnIndex("name"));
				//游标中的值必须是编号.
				System.out.println("query---->"+name);
			}
		//sqlite中的查询需要使用到游标, 而且getString函数的实参要为表的编号.
		//sql语句之查询 select * from user where id = ? having orderby groupby
		}
    	
    }


大概这就是我下午学习的东西...

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值