android view重新加载数据库,Android View中获得数据库数据的方法

2016-11-05 回答

android里面sqlite的使用 使用步骤 1,创建一个sqliteopenhelper的子类 public class mysqliteopenhelper extends sqliteopenhelper { private static final int database_version = 1;//数据库版本 public static final string database_name="user.db";//数据库文件 名 public static final string table_name="user";//表名 //字段名 public static final string id="id"; public static final string name="name"; public static final string age="age"; /** * 构造方法 * @param context :上下文 * @param name :数据文件名 * @param factory :数据库工厂 使用过程中传null * @param version :数据库版本 1 */ public mysqliteopenhelper(context context) { super(context, database_name, null, database_version); } /** * 当数据库打开时调用 * @param db 数据库操作对象 */ @override public void onopen(sqlitedatabase db) { super.onopen(db); system.out.println("-------onopen"); } /** * 创建数据库的方法 * @param db 数据库操作对象 crud ---create read update delete */ @override public void oncreate(sqlitedatabase db) { system.out.println("-------oncreate"); } /** *当数据库的版本有提升时调用 * @param db 数据库操作对象 * @param oldversion 老版本号 * @param newversion 新版本号 */ @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { //更新表 //更新数据 system.out.println("-------onupgrade"); } /** * 当数据库版本降低时调用 ---没什么用 * @param db * @param oldversion * @param newversion */ @override public void ondowngrade(sqlitedatabase db, int oldversion, int newversion) { super.ondowngrade(db, oldversion, newversion); system.out.println("-------onupgrade"); }} oncreate方法:在第一次调用getreadabledatabase(),getwriteabledatabase()方法里调用【如果磁盘上没有数据库文件就会调用】 onopen方法:在调用getreadabledatabase(),getwriteabledatabase()调用 onupgrade()方法,当数据库版本提升时调用 getwritabledatabase()得到可读可写的数据库操作对象。如果内存不足,该方法会锁定数据库,并抛异常 getreadabledatabase()得到可读写的数据库操作对象,,如果内存不足,数据库就只能写了 2,重写oncreate方法 public mysqliteopenhelper(context context) { super(context, database_name, null, database_version); } @override public void oncreate(sqlitedatabase db) { // 创建表 string sql = "create table " + table_name + "( " + _id + " integer primary key autoincrement," + name + " text, " + password + " text)"; db.execsql(sql); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { } 3,初始化数据库 //创建数据库 public void mysqlite(view view) { //创建 实现工具类 dbhelper dh = new dbhelper("test.db",1); //连接数据库 获取数据库实例 //getwritabledatabase() 数据写满会报错 //getreadabledatabase() 数据写满不会报错 sqlitedatabase sd = dh.getwritabledatabase(); sd.close(); 4,对数据库进行crud 参考demo: public class dbhelper { private final static string database_name = "testdb2.db";// 数据库文件名 private final static int version = 1;// 数据库版本 private final static string table_name = "users";// 表名 private final static string _id = "_id";// 编号 private final static string name = "name";// 用户名字段 private final static string password = "password";// 用户密码 // 操作数据库的类 private sqlitedatabase database; mysqliteopenhepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class mysqliteopenhepler extends sqliteopenhelper { public mysqliteopenhepler(context context) { super(context, database_name, null, version); } @override public void oncreate(sqlitedatabase db) { // 创建表 string sql = "create table " + table_name + "( " + _id + " integer primary key autoincrement," + name + " text, " + password + " text)"; db.execsql(sql); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { } } public dbhelper(context context) { hepler = new mysqliteopenhepler(context); database = hepler.getwritabledatabase(); } // 添加 public void insert(user user) { contentvalues values = new contentvalues(); values.put(name, user.getname()); values.put(password, user.getpassword()); database.insert(table_name, null, values); } // 修改 public void update(user user) { contentvalues values = new contentvalues(); values.put(name, user.getname()); values.put(password, user.getpassword()); database.update(table_name, values, _id + "=?", new string[] { string.valueof(user.getid()) }); } // 删除 public void delete(int id) { database.delete(table_name, _id + "=?", new string[] { string.valueof(id) }); }// 查询一个 public user querybyid(int id) { user u = null; cursor cursor = database.query(table_name, null, _id + "=?", new string[] { string.valueof(id) }, null, null, null); if (cursor.getcount() > 0) { cursor.movetonext(); u = new user(cursor.getint(0), cursor.getstring(1), cursor.getstring(2)); } return u; } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值