数据库的简单操作

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

就这样了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值