SQLite数据库
SQLite数据库
数据库:它就是一个软件,需要安装,安装完后就有自己的目录结构。 都有客户端和服务端,所有的数据库都实现了SQL标准 SQLite数据库:它是一个轻量级数据库,设计目的是嵌入式的,而且它占用的资源非常少 注意:除了主键不能存储任意的类型之外,其他的字段可以存放任意的数据类型 SqliteDatabase它要求:表的主键的字段名最好是_id,一定要_id否则报错;
Cmd操作指令: sqlite3 qjq.db进入数据库 .tables查看数据库里面的表 创建数据库文件:三种方式: 第一种通过上下文创建数据库: public class DBsqlite { private Context context; public DBsqlite(Context context) { super(); this.context = context; } public void createDB() { //通过上下文创建数据库 context.openOrCreateDatabase("persons.db",Context.MODE_PRIVATE,null); } 第二种SQLiteDatabase创建数据库 public void createDB(){ String dir="/data/data/"+context.getPackageName(); File file=new File(dir,"persons.db"); SQLiteDatabase.openOrCreateDatabase(file,Simsun; line-height:21px"> 第三种创建一个help类继承SQLiteOpenHelper 实现DBhelp构造onCreate方法onUpgrade方法 public class DBhelp extends SQLiteOpenHelper { public DBhelp(Context context) { // 上下文 ,数据库名,游标工厂 ,数据版本 super(context,"persons.db",null,2); // TODO Auto-generated constructor stub //数据库第一次创建之后调用该方法。创建表、视图。。。 或者初始化表信息 public void onCreate(SQLiteDatabase db) { // 创建数据库 db.execSQL("create table fish(_id integer primary key autoincrement,name text)"); } @Override //当数据版本被改变则会执行该方法super(context,3); public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { // 版本修改表添加一列 db.execSQL("ALTER TABLE fish ADD amount integer"); } Crud以下分别用两种方式crud了,一种是面向SQL,一种是面向对象,但是面向对象的源码里面其实也是在帮你拼接sql。 public class OtherFishService { private SQLiteOpenHelper mOpenHelper; public OtherFishService(Context context) { mOpenHelper = new DBHelper(context); /** *插入数据 * @param name */ public void insert(String name){ SQLiteDatabase db = mOpenHelper.getWritableDatabase(); // String sql = "insert into fish(name) values(?)"; if(db.isOpen()){ // db.execSQL(sql,new Object[]{name}); //insert into fish //ContentValues里面就是要插入的值 ContentValues values = new ContentValues(); values.put("name",name); db.insert("fish","_id",values); db.close(); }
List<Fish> fishs = new ArrayList<Fish>(); SQLiteDatabase db = mOpenHelper.getReadableDatabase(); // String sql ="select * from fish"; //cursor就是resultset // Cursor cursor = db.rawQuery(sql,Simsun; line-height:21px"> Cursor cursor = db.query("fish",//表名 new String[]{"*"},//要查询的列名 null,//查询条件 条件参数 分组 条件 null);//排序 while(cursor.moveToNext()){ //得到_id的下标 int column_index = cursor.getColumnIndex("_id"); //得到_id的值 int _id = cursor.getInt(column_index); String name = cursor.getString(cursor.getColumnIndex("name")); Fish fish = new Fish(_id,Simsun; line-height:21px"> fishs.add(fish); } //cursor使用完成之后一定要关闭 cursor.close(); return fishs; public void update(Fish fish){ // String sql = "update Fish set name = ? where _id = ?"; String whereClause = " _id = ?"; String[] whereArgs = new String[]{fish._id+""}; db.update("fish",values,whereClause,whereArgs); public void delete(int _id){ // String sql = "delete from fish where _id = ?"; String[] whereArgs = new String[]{_id+""}; db.delete("fish",Simsun; line-height:21px"> } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |