问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android 怎么读取数据库中的数据

发布网友 发布时间:2022-04-22 01:35

我来回答

3个回答

热心网友 时间:2022-06-03 14:14

展开1全部android读取数据库可以使用sqlite一些api进行读取,实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

/**
* 查找一条数据
* @param uid
*/
public User find(Integer uid){
SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); //创建数据库辅助类
Cursor cursor =db.rawQuery("select * from user where uid=?", new String[]{uid.toString()}); //创建一个游标
if(cursor.moveToFirst()){ //循环遍历查找数组
int uid2=cursor.getInt(cursor.getColumnIndex("uid"));
String uname=cursor.getString(cursor.getColumnIndex("uname"));
String uaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
User user=new User();
user.setUid(uid2);
user.setUname(uname);
user.setUaddress(uaddress);
return user;
}
cursor.close();
return null;
}

热心网友 时间:2022-06-03 14:14

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; } }

热心网友 时间:2022-06-03 14:15

你的问题呢
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 坐南朝北的房子厕所在什么方位最好? android 怎么往数据库里面添加数据 厕所在正北好不好? 怎么提高android contentresolver的查询效率优化 厕所设于居室北面是大凶,这与风水有什么联系吗? 如何对android多媒体数据库进行增删改 风水卫生间在北边好还的南边好 如何进行Android数据库操作 android 怎么使用sqlcipher android contentprovider 有什么用 跪求!桃花的动漫图片。唯美,古风。可以有人物。 求一张600*800像素的古风漫画图片 漫画图片唯美古风女生有狐狸耳朵的拿伞的 求几张古风,唯美的图片,要清晰的,最好有人物,... 求几张唯美古风人物插画图片,中国风插画类的 我想要一些高清唯美的古风人物的图片 求古风的漫画图片,里面的人物就像是唱京剧的打扮 古风漫画霸气女皇图片 西安职业高中(职高)哪个口碑好? 西安市重点职业高中有哪些 使用android自带的日历控件怎么标记特定的 楼房卫生间位于房子的西北方向风水不好吗?能破解吗? android如何保存html文件,包括其中的图片。 卫生间在房子的西北角在风水上好吗 吃松仁有什么好处? Android创建数据库需要做哪些事情 请问卫生间在西北角或者卫生间在北面 但是西北角有... android 如何获取保存的图片的地址 并存到数据库中 厕所在..北面风水好吗 android怎么从数据库读取一条数据赋值给字符串 卫生间朝北风水好不好 吃松子对人体有什么好处? Android数据库权限! 院子里的厕所窗户朝北好不好? 松子吃了有什么营养? 简述android平台提供了哪些数据存储方法 4⃣️室二两厅的房子,坐北朝南,有三个... android开发怎么存储数据 松子仁可以生吃吗?怎样吃最有营养? android的分批加载是怎么实现的