android SQLite的使用
来源:互联网 发布:python实战案例 编辑:程序博客网 时间:2024/06/06 18:47
Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库—SQLite。如果你想要开发 Android 应用程序,一定需要在 Android 上存储数据,使用SQLite 数据库是一种非常好的选择。
1、要使用Android SQLite必须要继承一个类——SQLiteOpenHelper。
public class MySQLiteOpenHelper extends SQLiteOpenHelper { /** * 构造方法 * @param context 上下文 * @param name 数据库的名称 * @param factory 游标工厂 一般默认为null * @param version 数据库版本 */ public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } //只有数据库创建的时候调用,适合创建数据库的表结构 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table contact(_id integer primary key autoincrement ," + "cname varchar(10), telephone varchar(10))"); } //只有数据库的版本更新的时候执行,适合修改数据库的表的结构 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
2.数据库操作工具类。
public class DBUtils { private static MySQLiteOpenHelper helper; private static DBUtils dbUtils ; //表的名称 public static final String table_contact = "contact" ; private SQLiteDatabase db ; public DBUtils(Context context) { helper = new MySQLiteOpenHelper(context,"contacts.db",null,1); db = helper.getWritableDatabase(); } /** * 单利模式创建数据库 * @param context * @return */ public static synchronized DBUtils getInstance(Context context){ if(dbUtils == null){ dbUtils = new DBUtils(context); } return dbUtils; } /** * 增加数据 * @param name 联系人名称 * @param number 电话号码 */ public void addData(String name ,String number){ ContentValues values = new ContentValues(); values.put("cname", name); // KEY 是列名,vlaue 是该列的值 values.put("telephone", number); // KEY 是列名,vlaue 是该列的值 // 参数一:表名,参数三,是插入的内容 // 参数二:只要能保存 values 中是有内容的,第二个参数可以忽略 db.insert(table_contact, null, values); } /** * 根据联系人名字删除联系人 * @param name 联系人名字 */ public void deleteData(String name){ String whereClause="cname = ?"; //条件 String[] whereArgs={name}; //条件参数 db.delete(table_contact,whereClause,whereArgs); } /** * 根据联系人名称修改电话号码 * @param name 联系人 * @param number 号码 */ public void updateData(String name ,String number){ ContentValues values = new ContentValues(); values.put("telephone",number); String whereClause = "name = ?"; //条件 String[] whereArgs = {name} ; //条件参数 db.update(table_contact,values,whereClause,whereArgs); } /** * 查询所有数据 */ public void queryData(){ String[] columns={"cname","telephone"}; String selection = null; //选择的条件 String[] selectionArgs = null; //选择条件的参数 String groupBy = null; //组别 String having = null; //传递NULL将导致所有行组被包含,并且在不使用行分组时需要.。 String orderBy = null; //排序 Cursor cursor = db.query(table_contact, columns, selection, selectionArgs, groupBy, having, orderBy); while(cursor.moveToNext()){ String cname = cursor.getString(cursor.getColumnIndex("cname")); String telephone = cursor.getString(cursor.getColumnIndex("telephone")); System.out.println("名字:"+cname+" ; 电话:"+telephone); } }}
3.在用到的数据库的代码中调用数据库操作。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库 DBUtils dbUtils = DBUtils.getInstance(this); //添加数据 dbUtils.addData("zhangkefeng","18626255712"); dbUtils.addData("xiaoqiang","18626255712"); //查询数据 dbUtils.queryData(); //删除数据 dbUtils.deleteData("zhangkefeng"); //修改数据 dbUtils.updateData("xiaoqiang","18137668837"); }}
可以在模拟器上运行,在data/data 目录下找到 你的包名 下的database文件夹里找到自己的数据库
0 0
- android SQlite 的使用
- android的sqlite使用
- android sqlite 的使用
- android Sqlite 的使用
- Android SQLite的使用
- android SQLite 的使用
- Android SQLite的使用
- Android:Sqlite的使用
- [Android] SQlite的使用
- android SQLite的使用
- android SQLite的使用
- Android SQLite 的使用
- Android使用的SQLite数据库
- android中sqlite的使用
- android中SQLite的使用
- android中SQLite的使用
- Android SQLite的使用实例
- android database sqlite的使用
- spring IOC
- wifi的两种工作模式
- iOS关于地图定位基础(一)
- Java8 lambda学习日记(1)
- JAVA WEB 浏览器兼容问题汇总
- android SQLite的使用
- MySQL数据库命名规范及约定
- 单片机的C语言编程中所用的语言推荐规范
- 摘要下java基础小结
- 一些我记不住的东西
- 关于轮子跟造轮子。
- apache kafka系列之在zookeeper中存储结构
- [iOS] 过滤后台返回nil的数据
- linux mysql 安装,重装遇到问题