Android-SQLiteDatabase数据存储
2016-05-04 22:18
525 查看
目标效果:
使用代码新建数据库进行插入修改删除查询操作,并使用log打印日志信息。(前边运行过多次,所以id不是从1开始了)
1.MainActivity.java页面创建数据库并进行插入修改删除查询打印。
MainActivity.java页面:
2.新建的数据库文件同上一篇博文的文件位置一样,只不过这个是保存在了databases文件夹下。(真机运行打不开data文件夹,需要使用模拟器运行)
另外,SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新,一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。
1.创建DBOpenHelper类,继承SQLiteOpenHelper,用于创建数据库和插入数据。
DBOpenHelper.java页面:
2.新建SecondActivity.java页面和activity_second.xml页面,这里只需要使用SecondActivity.java页面进行处理数据和打印信息。
SecondActivity.java页面:
3.使用SQLiteOpenHelper的好处是方便数据库的处理。
使用代码新建数据库进行插入修改删除查询操作,并使用log打印日志信息。(前边运行过多次,所以id不是从1开始了)
1.MainActivity.java页面创建数据库并进行插入修改删除查询打印。
MainActivity.java页面:
package com.example.database; import android.os.Bundle; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*创建私有数据库*/ SQLiteDatabase db=openOrCreateDatabase("user.db",MODE_PRIVATE,null); /*创建表,integer为整形,text为字符串,primary key代表主键,autoincrement代表自增,not 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('张三','男',18)"); /*添加方式二*/ ContentValues values=new ContentValues(); values.put("name","李四"); values.put("sex","男"); values.put("age",20); db.insert("usertb",null,values); values.clear();//清空values值,便于后边继续使用该变量 /*修改*/ values.put("sex","女"); db.update("usertb",values,"_id>?",new String[]{"3"});//将id大于3的人性别全改为女 /*删除*/ db.delete("usertb","name like ?",new String[]{"%三%"});//删除名字含有三的人 /*查询所有信息*/ Cursor c=db.rawQuery("select * from usertb",null); if(c!=null){ while(c.moveToNext()){ Log.i("MainActivity","_id"+c.getInt(c.getColumnIndex("_id"))); Log.i("MainActivity","name"+c.getString(c.getColumnIndex("name"))); Log.i("MainActivity","sex"+c.getString(c.getColumnIndex("sex"))); Log.i("MainActivity","age"+c.getInt(c.getColumnIndex("age"))); } c.close();//释放游标 } Log.i("MainActivity","---分隔符---"); /*按条件查询*/ Cursor b=db.query("usertb",null,"_id>?",new String[]{"2"},null,null,"name");//查询id大于2的新的信息 if(b!=null){ while(b.moveToNext()){ Log.i("MainActivity","_id"+b.getInt(b.getColumnIndex("_id"))); Log.i("MainActivity","name"+b.getString(b.getColumnIndex("name"))); Log.i("MainActivity","sex"+b.getString(b.getColumnIndex("sex"))); Log.i("MainActivity","age"+b.getInt(b.getColumnIndex("age"))); } b.close();//释放游标 } db.close();//释放SQLiteDatabase对象 } }
2.新建的数据库文件同上一篇博文的文件位置一样,只不过这个是保存在了databases文件夹下。(真机运行打不开data文件夹,需要使用模拟器运行)
另外,SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新,一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。
1.创建DBOpenHelper类,继承SQLiteOpenHelper,用于创建数据库和插入数据。
DBOpenHelper.java页面:
package com.example.database; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBOpenHelper extends SQLiteOpenHelper{ /** * SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新,一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法 */ public DBOpenHelper(Context context, String name) { super(context, name,null,1); } /*首次创建数据库的时候调用(调用一次),一般可以把建库,建表的操作写到里边,不可以人为调用*/ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)"); /*添加方式一*/ db.execSQL("insert into stutb(name,sex,age)values('张三','女',18)"); /*添加方式二*/ ContentValues values=new ContentValues(); values.put("name","王五"); values.put("sex","男"); values.put("age",20); db.insert("stutb",null,values); } /*当数据库的版本发生变化的时候,会自动执行,不可以人为调用*/ @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } }
2.新建SecondActivity.java页面和activity_second.xml页面,这里只需要使用SecondActivity.java页面进行处理数据和打印信息。
SecondActivity.java页面:
package com.example.database; import android.os.Bundle; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); /*实例DBOpenHelper对象*/ DBOpenHelper helper=new DBOpenHelper(SecondActivity.this,"stu.db"); /*获取数据库*/ SQLiteDatabase db=helper.getWritableDatabase(); /*查询所有信息*/ Cursor c=db.rawQuery("select * from stutb",null); if(c!=null){ while(c.moveToNext()){ Log.i("MainActivity","name"+c.getString(c.getColumnIndex("name"))); } } } }
3.使用SQLiteOpenHelper的好处是方便数据库的处理。
相关文章推荐
- Android 之 Notification
- Android自定义视图二:如何绘制内容
- Android开发实现发送短信验证码(使用第三方服务器Bmob)
- Andriod mutidex相关的文章
- MAC下创建Android、iOS模拟器的方法
- Android客户端支付功能,只用第三方支付接口
- Android倒计时定时器CountDownTimer的用法
- Android自定义视图二:用Canvas和Paint绘制折线图
- Android使用AnysnTask强求数据
- android--线程池
- <Android 应用 之路> 天气预报(三)
- <Android 应用 之路> 天气预报(三)
- Activity+fragment+ViewPager方法调用
- 【Android】图像变换
- Android性能专项测试测试点指导(一)
- Android开发设置EditText不获得焦点
- Android快速开发框架-ZBLibrary 源码分享
- Android开发艺术探索——新的征程,程序人生路漫漫!
- Android开发艺术探索——新的征程,程序人生路漫漫!
- 对Android中“回调”的理解