数据库的简单操作

xiaoxiao2021-02-27  547

1.直接读取databases

SQLiteDatabase db= SQLiteDatabase.openOrCreateDatabase("data/data/com.example.administrator.shujuku/databases/jlpt_5.db", null); Cursor cursor = db.rawQuery("select * from jlpt where _id=?", new String[]{"1"}); if (cursor.moveToFirst()){ String name =cursor.getString(cursor.getColumnIndex("kanji")); Log.e("onCreate: ",name ); } 2.使用datahelper读取不到时会直接创建一个数据库,读取指定的数据库需要指定版本号

MySQLiteOpenHelper helper=new MySQLiteOpenHelper(this,"jlpt_5.db",null,4); SQLiteDatabase db= helper.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from jlpt where _id=?", new String[]{"1"}); if (cursor.moveToFirst()){ String name =cursor.getString(cursor.getColumnIndex("kanji")); Log.e("onCreate: ",name ); } 3.使用框架greendao操作

第一步:

gradle添加这几行代码

compile 'org.greenrobot:greendao:3.1.0' apply plugin: 'org.greenrobot.greendao' greendao{ //指定数据库的版本号 schemaVersion 4 //生成的DAOMaster和DAOSession的位置 targetGenDir 'src/main/java' } sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } } classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'sync一下就可以了你会发现项目中多了一些生成的Java文件:

第二步:

新建一个表:

@Entity public class database { @Id(autoincrement = true) private long id; @Property private int level; @Property private String kanji; build一下就会自动补全:

public String getKanji() { return this.kanji; } public void setKanji(String kanji) { this.kanji = kanji; } public int getLevel() { return this.level; } public void setLevel(int level) { this.level = level; } public long getId() { return this.id; } public void setId(long id) { this.id = id; } @Generated(hash = 1830576533) public database(long id, int level, String kanji) { this.id = id; this.level = level; this.kanji = kanji; } @Generated(hash = 2022778920) public database() { } 然后会自动自动生成一个dao文件

然后就到了第三步使用方法了:

Dbhelper helper=new Dbhelper(this,"jlpt_5.db"); DaoMaster master=new DaoMaster(helper.getReadableDb()); DaoSession session=master.newSession(); jlptDao userDao=session.getJlptDao(); List<jlpt>list=userDao.queryBuilder() // UserDao.Properties.Id.between(5, 10) .where(jlptDao.Properties.Id.between(1,3)) .limit(1) .build() .list(); for (jlpt jlpt : list) { Log.e("google_lenve_fb", jlpt.toString()); } 这就可以按照条件获取数据了。

....

结尾再添加普通方法数据库遍历的方法:

public List<PointBean> getAllPoints() { String sql = "select * from points"; SQLiteDatabase db = helper.getWritableDatabase(); List<PointBean> pointList = new ArrayList<PointBean>(); PointBean point = null; Cursor cursor = db.rawQuery(sql, null); while (cursor.moveToNext()) { point = new PointBean(); point.setPointName(cursor.getString(cursor .getColumnIndex("point_name"))); point.setLongitude(cursor.getDouble(cursor .getColumnIndex("longitude"))); point.setLatitude(cursor.getDouble(cursor .getColumnIndex("latitude"))); pointList.add(point); } return pointList; } 就这样了

转载请注明原文地址: https://www.6miu.com/read-465.html

最新回复(0)