OrmLite__数据库框架

导包

http://ormlite.com/releases/
将core和android的jar各自下载一份并导入
//或者
compile 'com.j256.ormlite:ormlite-android:5.0'

创建实例化bean类

//表名
@DatabaseTable(tableName = "People")
public class People {
    /*
    * columnName  字段名
    * dataType 数据类型
    * defaultValue 字符串默认值
    * canBeNull 可否为空
    * id 主键
    * generatedId 自增主键
    * foreign 外联
    * unique 唯一
    * */
    //自增主键
    @DatabaseField(generatedId = true)
    private int id;
    //列名
    @DatabaseField(columnName = "name")
    private String name;
    /*
    * 常用类型:
    * DataType.STRING
    * DataType.BOOLEAN
    * DataType.DATE
    * DataType.DATE_LONG
    * DataType.CHAR
    * DataType.BYTE
    * DataType.SHORT
    * DataType.INTEGER
    * DataType.LONG
    * DataType.FLOAT
    * DataType.DOUBLE
    * DataType.SERIALIZABLE
    * DataType.TIME_STAMP
    * */
    //列名和类型
    @DatabaseField(columnName = "age",dataType = DataType.INTEGER)
    private int age;

    //必须存在无参构造器
    public People() {
    }

    @Override
    public String toString() {
        return "People{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

创建helper类,用于获取Dao对象

public class PeopeoDatabaseHelper extends OrmLiteSqliteOpenHelper {
    public static final String DB_NAME="people.db";
    public static final int DB_VERSION=1;

    //出现异常直接抛出
    RuntimeExceptionDao<People, Integer> mRuntimeExceptionDao;
    //出现异常进行cache
    Dao<People, Integer> mDao;

    public PeopeoDatabaseHelper(Context context) {
        //在工厂类中传入null即可
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource,People.class);
        } catch (SQLException e) {
            throw new RuntimeException("建表"+DB_NAME+"失败");
        }
        RuntimeExceptionDao<People, Integer> dao = getPeopleRuntimeDao();
        //在创建数据库时插入一些数据用于测试
        People people = new People();
        people.setAge(23);
        people.setName("小黄");
        dao.create(people);
        People people2 = new People();
        people.setAge(24);
        people.setName("老江");
        dao.create(people2);
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            TableUtils.dropTable(connectionSource,People.class,true);
            onCreate(database,connectionSource);
        } catch (SQLException e) {
            throw new RuntimeException("升级"+DB_NAME+"失败");
        }
    }

    //获取dao的两个方法
    public RuntimeExceptionDao<People,Integer> getPeopleRuntimeDao() {
        if (mRuntimeExceptionDao ==null){
            mRuntimeExceptionDao =getRuntimeExceptionDao(People.class);
        }
        return mRuntimeExceptionDao;
    }
    public Dao<People, Integer> getPeopleDao() throws SQLException {
        if (mDao==null){
            mDao=getDao(People.class);
        }
        return mDao;
    }

    //关闭数据库
    @Override
    public void close() {
        super.close();
        mDao=null;
        mRuntimeExceptionDao=null;
    }
}

增删改查

public class MainActivity extends AppCompatActivity {
    RuntimeExceptionDao<People, Integer> dao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        PeopeoDatabaseHelper peopeoDatabaseHelper = new PeopeoDatabaseHelper(this);
        peopeoDatabaseHelper = OpenHelperManager.getHelper(this, PeopeoDatabaseHelper.class);
        dao = peopeoDatabaseHelper.getPeopleRuntimeDao();
    }

    int x = 0;

    public void insert(View view) {
        People people = new People();
        people.setName("小黄" + x + "号");
        people.setAge(x);
        dao.create(people);
        x++;
    }

    public void delete(View view) {
        try {
            int delete = dao.deleteBuilder().delete();
            Log.d("meee", getClass() + ":\n" + "delete:" + delete);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void update(View view) {
        try {
            List<People> query = dao.queryBuilder()
                    .where()
                    .eq("name", "小黄1号")
                    .and()
                    .eq("age", 1)
                    .query();
            for (int i = 0; i < query.size(); i++) {
                People people = query.get(i);
                people.setName("巨无霸小黄一号");
                dao.update(people);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void query(View view) {
        List<People> peoples = dao.queryForAll();
        for (int i = 0; i < peoples.size(); i++) {
            People people = peoples.get(i);
            Log.d("meee", getClass() + ":\n" + "people:" + people);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值