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;
}
就这样了