第一步 首先導入依賴
implementation 'com.j256.ormlite:ormlite-android:5.1'
implementation 'com.j256.ormlite:ormlite-core:5.1'
第二步 創建數據庫及表名
public class Helper extends OrmLiteSqliteOpenHelper {
public Helper(Context context ) {
super(context, "test", null, 1);
}
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
// 建表
TableUtils.createTable(connectionSource,UserInfoBean.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
}
}
第三布創建Dao層
public class DBManager {
private Dao<UserInfoBean,String> dao;
public DBManager(Context context) throws SQLException {
Helper helper = new Helper(context);
dao = helper.getDao(UserInfoBean.class);
}
// 創建數據
public void insertStudent(UserInfoBean student) throws SQLException {
//在數據庫中創建一條記錄,作用與SQLiteDatabase.insert一樣
dao.createOrUpdate(student);
}
public void batchInsert(List<UserInfoBean> students) throws SQLException {
dao.create(students);
}
/**
* 查詢數據
*
* @return
* @throws SQLException
*/
public List<UserInfoBean> getStudent() throws SQLException {
List<UserInfoBean> list = dao.queryForAll();
return list;
}
/**
* 查詢某個數據
*
* @return
* @throws SQLException
*/
public List<UserInfoBean> queryGuanyu() throws SQLException {
//Eq是equals的縮寫
//方法1
List<UserInfoBean> list = dao.queryForEq("nickName", "張飛");
//方法2
// QueryBuilder queryBuilder = dao.queryBuilder();
//// queryBuilder.offset(); //偏移量
//// queryBuilder.limit(8l); //最多幾行 offset + limit 做分頁
//// queryBuilder.orderBy("age",true);
// queryBuilder.where().eq("nickName","關羽"); //多條件查詢
// List<UserInfoBean> query = queryBuilder.query();//此方法相當於build,提交設置
return list;
}
/**
* 刪除數據
*
* @param student
* @throws SQLException
*/
public void deleteStudent(UserInfoBean student) throws SQLException {
//只看id
dao.delete(student);
}
/**
* 刪除指定數據
*
* @throws SQLException
*/
public void deleteGuanyu() throws SQLException {
DeleteBuilder deleteBuilder = dao.deleteBuilder();
deleteBuilder.where().eq("nickName", "關羽");
deleteBuilder.delete();
}
/**
* 修改數據
*
* @param student
* @throws SQLException
*/
public void updateStudent(UserInfoBean student) throws SQLException {
student.setNickName("關羽");
dao.update(student);
}
}
第四步 看一下表中的字段
//此乃表名 注:括號裏也可以不寫 不寫的話表名就默認是類名小寫
@DatabaseTable(tableName = "user")
public class UserInfoBean {
@DatabaseField
private long birthday;
// 只有主鍵需要加括號裏的東西
@DatabaseField(generatedId = true)
private int id;
@DatabaseField
private long lastLoginTime;
@DatabaseField
private String nickName;
@DatabaseField
private String phone;
@DatabaseField
private int sex;
@DatabaseField
private String headPic;
@DatabaseField
private String sessionId;
@DatabaseField
private String pwd;
@DatabaseField
private int stats;
}
完成以上四步就可以將數據庫創建出來了,接下來測試一下是否可用
看一下佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/insert"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="插入數據" />
</LinearLayout>
看一下MainActivity的代碼
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private DBManager dbManager;
private List<UserInfoBean> mStudents;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化DBManager
try {
dbManager = new DBManager(this);
} catch (SQLException e) {
e.printStackTrace();
}
initView();
//剛進來時查詢所有的student
queryStudent();
}
/**
* 初始化控件
*/
private void initView() {
findViewById(R.id.insert).setOnClickListener(this);
}
/**
* 查詢所有的student
*/
public void queryStudent() {
try {
mStudents = dbManager.getStudent();
Toast.makeText(this, "" + mStudents.size() + "", Toast.LENGTH_SHORT).show();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.insert:
//插入一條數據
UserInfoBean student = new UserInfoBean();
student.setNickName("張飛");
student.setPhone("男");
student.setId(123);
student.setHeadPic("1607");
student.setBirthday(11);
student.setSex(2);
student.setLastLoginTime(22);
try {
dbManager.insertStudent(student);
queryStudent();
} catch (SQLException e) {
e.printStackTrace();
}
break;
}
}
}
然後就可以將數據表導出 看是否插入成功
基本使用完畢