-
sqlite 常用方法查看全部
-
DemoSQLite III(下) public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(Context context, String name) { super(context, name,null,1); // TODO 自动生成的构造函数存根 } public DBOpenHelper(Context context, String name, CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); // TODO 自动生成的构造函数存根 } @Override//首次创建数据库的时候调用,一般用来建库/建表的操作 public void onCreate(SQLiteDatabase db) { // TODO 自动生成的方法存根 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 db, int oldVersion, int newVersion) { // TODO 自动生成的方法存根 } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
DemoSQLite III(上) onCreate{ DBOpenHelper helper =new DBOpenHelper(this, "stu1.db"); /** * getReadableDatabase()/getWritableDatabase() * 当调用此时,自动调用DBOpenHelper.onCreate()方法,若没有数据库,创建并打开;若有,直接打开 */ //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) { Log.i("info", c.getString(c.getColumnIndex(ColumnName))); } } c.close(); } db.close(); } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
Ps1:public static final String TABLENAME="";//拼接的时候注意空格。 Ps2【重点】:c.getString(c.getColumnIndex(columnName))//推荐使用getString() Ps3【返回类型】:db.insert():id;db.delete()/db.update():影响的行数;db.query():Cursor。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
DemoSQLite II onCreate{ SQLiteDatabase db=openOrCreateDatabase("stu.db", MODE_PRIVATE, null); 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)"); ContentValues values=new ContentValues(); values.put("name", "张三0"); values.put("sex", "男"); values.put("age", 12); long rowId=db.insert("stutb", null, values); //Log.i("TAG", ""+rowId); values.clear(); values.put("sex", "男"); db.update("stutb", values, "_id>?", new String[]{"3"});//将全部id>3的人的性别改成男 db.delete("stutb", "name like ?", new String[]{"%0%"});//删除所有名字中带有0的人 Cursor c=db.query("stutb", null, "_id>?", new String[]{"0"}, null, null, "name"); if(c!=null){ String[] columns=c.getColumnNames(); while(c.moveToNext()){ for(String columnName:columns){ Log.i("TAG", ""+c.getInt(c.getColumnIndex(columnName)));//把所有字段名字查询出来 } } c.close(); } db.close(); }查看全部
-
事物处理的安全性 通过数据库上的独占性和共享锁来实现独立事务处理 多个进程可以同一时间从同一个数据库读取数据,但只有一个可以写入数据 SQLite的数据类型 SQLite支持NULL.INTEGER.REAL.TEXT.BIOB数据类型 依次代表:空值,整形,浮点值,字符串值,二进制值 动态数据类型 --当某个直插入到数据库时,SQLite会检查他的数据类型,如果该类型与关联的列类型不匹配,SQLite就会尝试将该值转换成该列的类型,如果不能转换,该值将作为本身的类型存储查看全部
-
SQLite的主要特点 1.轻量级 一个动态库、单文件 2.独立性 没有依赖、无序安装 3.跨平台 支持多种操作系统 4.隔离性 全部在一个文件夹中 5.多语言接口 支持众多编程语言 6.安全性 事物查看全部
-
Cursor:游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获取列值方法getString()等常用方法: -getCount()总记录条数 -isFirst()判断是否第一条记录 -isLast()判断是否最后一条记录 -moveToFirst()移动到第一条记录 -moveToLast()移动到最后一条记录 -move(int offset)移动到指定记录 -moveToNext()移动到下一条记录 -moveToPrevious()移动到上一条记录 -moveToPosition(int position)移动到指定位置记录 -getColumnIndexOrThrow(String columnName)据列名称获取列索引 -getInt(int columnIndex)获取指定列索引的int类型值 -getString(int columnIndex)获取指定列索引的String类型值 Ps1:每个程序都有自己的数据库,默认情况下是互相不干扰。 Ps2:记住关闭Cursor(while循环之外)和SQLiteDatabase(if判断之外)。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
DemoSQLite I onCreate{ //如果没有数据库,则帮你创建并打开;若有,则直接打开。 /** * 第一个参数:数据库名(最好加后缀.db) * 第二个参数:数据库模式 * 第三个参数:游标(Cursor):null * Ps:主键名字一定要写成“_id”“integer” */ 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('李四','男',19)"); db.execSQL("insert into usertb(name,sex,age)values('张三','女',18)"); db.execSQL("insert into usertb(name,sex,age)values('王五','女',18)"); //查询方法使用rawQuery,不能用execSQL。 Cursor c=db.rawQuery("select * from usertb", null); if(c!=null){ //游标如果没有处理过,默认就在第一条,所以没必要c.moveToFirst();(return boolean) while(c.moveToNext()){ Log.i("TAG", "_id:"+c.getInt(c.getColumnIndex("_id"))); Log.i("TAG", "name:"+c.getString(c.getColumnIndex("name"))); } c.close(); } db.close(); } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
在Android中如何使用SQLite——SQLiteDatabase -SQLiteDatabase 提供了一些管理SQLite数据库的类 提供创建,删除,执行SQLite命令,并执行数据库管理任务的方法 每个程序的数据库名字是唯一的 db.execSQL(sql)//执行任何SQL语句(查询语句除外,因为返回类型不匹配) db.insert(String table,String nullColumnHack,ContentValues values)//(表名,空列的日志,值) db.delete(String table,String whereClause,String[] whereArgs)//(表名,删除条件,删除条件数组值) db.update(String table,ContentValues values,String whereClause,String[]whereArgs)//(表名,值,更新条件,更新的条件数组) db.query(String table,String[]Columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit)//(表名,查询的列,位置条件,与selection拼成条件,分组,筛选,排序,分页限制)(查询) db.rawQuery(sql,selecionArgs)(查询) -SQLiteOpenHelper Ps:如果String whereClause(String selection)写得比较完整,则String[] whereArgs(String selectionArgs)可置为null。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
数据篇-SQLite II 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
数据篇-SQLite SQLite特点主要包括: 1、 轻量级 一个动态库、单文件 2、 独立性 没有依赖、无须安装 3、 隔离性 全部在一个文件夹中 4、 跨平台 支持众多操作系统 5、 多语言接口 支持众多编程语言 6、 安全性 事务 --关于事务处理的安全性: -通过数据库上的独占性和共享锁来实现独立事务处理。 -多个进程可以同一时间从同一个数据库读取数据,但只有一个可以写入数据。 SQLite的数据类型:【重点】 -SQLite支持NULL、INTEGER、REAL、TEXT、BLOB数据类型。 -依次代表:空值、整型值,浮点值,字符串值,二进制对象。 动态数据类型(弱引用) -当某个值插入到数据库时,SQLite会检查他的数据类型,如果该类型与关联的列类型不匹配,SQLite就会尝试将该值转换成该列的类型,如果不能转换,该值将作为本身的类型存储。【Ps:写入数据库或读取数据库,类型能转则转,不能则系统规定默认型代替!】 使用须知: -由于资源占用少、性能良好和零管理成本,嵌入式数据库有了他的用武之地。例如Android、IOS。 -没有可用于SQLite的网络服务器、只能通过网络共享可能存在文件锁定或者性能问题。 -只提供数据库级的锁定。 -没有用户账户概念,而是根据文件系统确定所有数据库的权限。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
特点看这里查看全部
-
DemoSharedPreferences II onCreate{ SharedPreferences sp=getSharedPreferences("MyUser", MODE_PRIVATE); editor=sp.edit(); String name=sp.getString("User", ""); if(name.equals("")||name==null){ cb_save.setChecked(false); } else if(name.equals("admin")){ cb_save.setChecked(true); et_user.setText(name); } } public void doClick(View v){ switch (v.getId()) { case R.id.btn_login: String name=et_user.getText().toString().trim(); String pass=et_pwd.getText().toString().trim(); if(name.equals("admin")&&pass.equals(".")){ if(cb_save.isChecked()){ editor.putString("User", name); editor.commit(); }else{ editor.remove("User");//如果第一次没保存执行会怎么样?不会报错 editor.commit(); } Toast.makeText(MainActivity.this, "登录成功!", 1).show(); }else{ Toast.makeText(MainActivity.this, "账号或密码错误!", 1).show(); } break; } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
DemoSharedPreferences I //第一种方法 //SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this); //第二种方法 *//** * 第一个参数:文件名.xml * 第二个参数:模式;如MODE_PRIVATE:只有这个APP可以调用此对象sp *//* SharedPreferences sp=getSharedPreferences("myPref", MODE_PRIVATE); Editor editor=sp.edit(); //存储数据 editor.putString("Name", "慕课网"); editor.putInt("Age", 30); editor.putLong("Time", System.currentTimeMillis()); editor.putBoolean("Default", true); editor.commit();//如果这个不写的话,所有操作都无效 editor.remove("Default"); editor.commit(); //读取数据 Log.i("TAG", sp.getString("Name", "默认值"));//第二个参数:取不到数据的默认值 Log.i("TAG", String.valueOf(sp.getInt("Age", 0))); Log.i("TAG", String.valueOf(sp.getInt("Age1", 0)));//假设取不到 Ps:Eclipse中,Error提示,双击错误地方即可锁定错误的位置。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
举报
0/150
提交
取消