1、在AndroidStudio的项目APP的gradle中添加ormLite的库:compile 'com.j256.ormlite:ormlite-android:5.0';
2、创建Bean实体类
1)、创建一个UserBean.java
package com.fengyu.hu.db.bean;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
/**
* Created by Administrator on 2018/2/4.
*/
@DatabaseTable(tableName = "tb_user_bean")
public class UserBean {
@DatabaseField(columnName = "name")
private String name;
@DatabaseField(columnName = "desc")
private String desc;
@DatabaseField(columnName = "age")
private int age;
@DatabaseField(generatedId = true)
private int id;
public UserBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "UserBean{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
", age=" + age +
", id=" + id +
'}';
}
}
其中在UserBean添加@DatabaseTable(tableName = "tb_user_bean")表示这是一张表,tb_user_bean是该表的名字,在属性前添加@DatabaseField(columnName = "age")这个字段,表示在数据库表中列的名称,其中@DatabaseField(generatedId = true)表示id主键自动生产,自增长
3、编写Dao类
1)、原生数据库需要继承需要继承SQLiteOpenHelper,这里需要继承OrmLiteSqliteOpenHelper,具体操作如下代码:
package com.fengyu.hu.db.helper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.fengyu.hu.db.bean.UserBean;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;
import java.sql.SQLException;
/**
* Created by Administrator on 2018/2/4.
*/
public class DatabaseHelperSimple extends OrmLiteSqliteOpenHelper{
private static final String TB_NAME = "TB_SIMPLE_USE.db";
private static final int TB_VERSION = 1;
private DatabaseHelperSimple(Context context) {
super(context, TB_NAME, null, TB_VERSION );
}
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
TableUtils.clearTable(connectionSource, UserBean.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
try {
TableUtils.dropTable(connectionSource,UserBean.class,true);
onCreate(database,connectionSource);
} catch (SQLException e) {
e.printStackTrace();
}
}
private static DatabaseHelperSimple instance;
public static synchronized DatabaseHelperSimple getInstance(Context context){
if (instance == null){
synchronized (DatabaseHelperSimple.class){
if (instance == null){
instance = new DatabaseHelperSimple(context.getApplicationContext());
}
}
}
return instance;
}
private Dao<UserBean,Integer> mDao;
public Dao<UserBean,Integer> getmDao() throws SQLException {
return getDao(UserBean.class);
}
public void close(){
close();
mDao = null;
}
}
我们需要实现两个方法onCreate与 onUpgrade,onCreate是数据库第一次创建的时候调用,而onUpdate是数据库进行版本升级的时候的调用,这里在onCreate方法中创建表 TableUtils.clearTable(connectionSource, UserBean.class);,onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion)更新表,使用ormlite提供的TableUtils.dropTable(connectionSource, User.class, true);进行删除操作~删除完成后,别忘了,创建操作:onCreate(database, connectionSource);这里我们使用单列,
2)、编写UserBean的Dao,如下代码:
private Dao<UserBean,Integer> mDao;
public Dao<UserBean,Integer> getmDao() throws SQLException {
return getDao(UserBean.class);
}
有了UserDao就可以进行数据库的增删改查操作了
4、测试
package com.fengyu.hu.activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.fengyu.hu.R;
import com.fengyu.hu.db.bean.User;
import com.fengyu.hu.db.bean.UserBean;
import com.fengyu.hu.db.dao.UserDao;
import com.fengyu.hu.db.dao.UserDaoImp;
import com.fengyu.hu.db.helper.DatabaseHelperSimple;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* <pre>
* author : xiaohu
* time : 2018/1/23
* des :
* <pre/>
*/
public class OrmLiteActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ormlite);
UserBean userBean = new UserBean();
userBean.setAge(22);
userBean.setDesc("小明写OrmLite");
userBean.setName("小明");
try {
DatabaseHelperSimple.getInstance(this).getmDao().create(userBean);
} catch (SQLException e) {
e.printStackTrace();
}
List<UserBean> list = new ArrayList<>();
UserBean userBean2 = new UserBean();
userBean2.setAge(16);
userBean2.setDesc("插入数据2");
userBean2.setName("数据2");
UserBean userBean3 = new UserBean();
userBean3.setAge(14);
userBean3.setDesc("插入数据3");
userBean3.setName("数据3");
list.add(userBean2);
list.add(userBean3);
try {
DatabaseHelperSimple.getInstance(this).getmDao().create(list);
} catch (SQLException e) {
e.printStackTrace();
}
try {
List<UserBean> userList = DatabaseHelperSimple.getInstance(this).getmDao().queryForAll();
for (UserBean user : userList){
Log.e("xys", "user.toStirng-----" + user.toString());
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
输出日志:
2-04 20:07:12.476 16757-16757/com.fengyu.hu E/xys: user.toStirng-----UserBean{name='小明', desc='小明写OrmLite', age=22, id=1}
02-04 20:07:12.476 16757-16757/com.fengyu.hu E/xys: user.toStirng-----UserBean{name='数据2', desc='插入数据2', age=16, id=2}
02-04 20:07:12.476 16757-16757/com.fengyu.hu E/xys: user.toStirng-----UserBean{name='数据3', desc='插入数据3', age=14, id=3}
其中 DatabaseHelperSimple.getInstance(this).getmDao().create(userBean);插入数据,DatabaseHelperSimple.getInstance(this).getmDao().create(list);批量插入数据,
List<UserBean> userList = DatabaseHelperSimple.getInstance(this).getmDao().queryForAll();查询该表中所有的数据
好了到此OrmLite的基本用法应该会操作了,下篇将补充OrmLite的拓展用法:http://mp.blog.csdn.net/postedit/79255303;
参考了http://blog.csdn.net/lmj623565791/article/details/39121377这篇文章