android 数据库基础用法
来源:互联网 发布:易语言自动关机源码 编辑:程序博客网 时间:2024/05/17 21:06
1.文件中查找到自己要用到的数据库
public class DBOpenHelper extends SQLiteOpenHelper {// 定义工具类, 继承SQLiteOpenHelperpublic DBOpenHelper(Context context) {// 创建对象的时候, 需要传入上下文环境super(context, "itcast.db", null, 4);/* * 由于父类没有无参构造函数, 必须显式调用有参的构造函数 * 参数1: 上下文环境, 用来确定数据库文件存储的目录 * 参数2: 数据库文件的名字 * 参数3: 生成游标的工厂, 填null就是使用默认的 * 参数4: 数据库的版本, 从1开始 */}@Overridepublic void onCreate(SQLiteDatabase db) {System.out.println("onCreate");db.execSQL("CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))");// 执行SQL语句, 创建表}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {System.out.println("onUpgrade");db.execSQL("ALTER TABLE person ADD balance INTEGER");}}包括初始创建和更新。
2.android对数据库的增删改查
public class PersonDao {private DBOpenHelper helper;public PersonDao(Context context) {helper = new DBOpenHelper(context);}public void insert(Person p) {SQLiteDatabase db = helper.getWritableDatabase();// 获取数据库连接(可写的)db.execSQL("INSERT INTO person(name, balance) VALUES(?, ?)", new Object[] { p.getName(), p.getBalance() });// 执行SQL语句, 插入db.close();}public void delete(int id) {SQLiteDatabase db = helper.getWritableDatabase();db.execSQL("DELETE FROM person WHERE id=?", new Object[] { id });db.close();}public void update(Person p) {SQLiteDatabase db = helper.getWritableDatabase();db.execSQL("UPDATE person SET name=?, balance=? WHERE id=?", new Object[] { p.getName(), p.getBalance(), p.getId() });db.close();}public Person query(int id) {SQLiteDatabase db = helper.getReadableDatabase();// 获取数据库连接(可读的)Cursor c = db.rawQuery("SELECT name, balance FROM person WHERE id=?", new String[] { id + "" });// 执行SQL语句, 查询, 得到游标Person p = null;if (c.moveToNext()) {// 判断游标是否包含下一条记录, 如果包含将游标向后移动一位String name = c.getString(c.getColumnIndex("name"));// 获取"name"字段的索引, 然后根据索引获取数据int balance = c.getInt(1);// 获取1号索引上的数据p = new Person(id, name, balance);}c.close();db.close();return p;}public List<Person> queryAll() {SQLiteDatabase db = helper.getReadableDatabase();Cursor c = db.rawQuery("SELECT id, name, balance FROM person", null);List<Person> persons = new ArrayList<Person>();while (c.moveToNext()) {Person p = new Person(c.getInt(0), c.getString(1), c.getInt(2));persons.add(p);}c.close();db.close();return persons;}public int queryCount() {SQLiteDatabase db = helper.getReadableDatabase();Cursor c = db.rawQuery("SELECT COUNT(*) FROM person", null);c.moveToNext();int count = c.getInt(0);c.close();db.close();return count;}public List<Person> queryPage(int pageNum, int capacity) {String offset = (pageNum - 1) * capacity + "";// 偏移量String len = capacity + "";// 个数SQLiteDatabase db = helper.getReadableDatabase();Cursor c = db.rawQuery("SELECT id, name, balance FROM person LIMIT ?,?", new String[]{offset , len});List<Person> persons = new ArrayList<Person>();while (c.moveToNext()) {Person p = new Person(c.getInt(0), c.getString(1), c.getInt(2));persons.add(p);}c.close();db.close();return persons;}}
0 0
- android 数据库基础用法
- Android数据库基础用法
- Android.mk用法基础
- Android基础-TextView用法
- Android基础-Button用法
- Android基础-AutoCompleteTextView用法
- Android基础-EditText用法
- Android基础-MultiAutoCompleteTextView用法
- Android基础-Notification用法
- Android基础-RadioButton用法
- Android基础-CheckBox用法
- Android基础-DatePickerAndTimePicker用法
- Android基础-Intent用法
- Android基础-ProgressDialog用法
- android 一些基础用法
- Android ObjectAnimator基础用法
- Android AIDL基础用法
- Android 数据库ORMLite用法
- Netty In Action中文版 - 第三章:Netty核心概念
- ubuntu驱动开发环境搭建之nfs
- 关于单链表
- numpy基本方法总结
- oracle 触发器的种类和触发事件
- android 数据库基础用法
- SAP BO 技术
- 基本知识
- error:jquery 用$.post 传递给php页面值时,没有返回
- DirectoryIndex 详解
- HDU 1044 Collect More Jewels
- Netty In Action中文版 - 第四章:Transports(传输)
- TCP/UDP讲解
- 网页制作中的背景处理