大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app;本篇博客将详细介绍ORMLite的简易用法。

下面开始介绍ORMLite的入门用法~

1、下载 ORMLite Jar

首先去ORMLite官网下载jar包,对于Android为:ormlite-android-5.0.jar 和 ormlite-core-5.0.jar ;

ps:访问不了的朋友,文章末尾会把jar、源码、doc与本篇博客例子一起打包提供给大家下载。

2、配置Bean类

有了jar,我们直接新建一个项目为:OrmliteDemo,然后把jar拷贝到libs下。

然后新建一个包:com.my.bean专门用于存放项目中的Bean,首先新建一个Usera.Java

Users:

1 packagecom.my.bean;2

3 importcom.j256.ormlite.field.DatabaseField;4 importcom.j256.ormlite.table.DatabaseTable;5

6

7

8

9 @DatabaseTable(tableName="tb_users")10 public classUsers {11 @DatabaseField(generatedId=true)12 private intid;13 @DatabaseField(columnName="name")14 privateString name;15 @DatabaseField(columnName="desc")16 privateString desc;17 public intgetId() {18 returnid;19 }20 public void setId(intid) {21 this.id =id;22 }23 publicString getName() {24 returnname;25 }26 public voidsetName(String name) {27 this.name =name;28 }29 publicString getDesc() {30 returndesc;31 }32 public voidsetDesc(String desc) {33 this.desc =desc;34 }35 publicUsers( String name, String desc) {36 super();37 this.name =name;38 this.desc =desc;39 }40 publicUsers() {41 super();42 //TODO Auto-generated constructor stub

43 }44

45

46

47 }

首先在User类上添加@DatabaseTable(tableName = "tb_user"),标明这是数据库中的一张表,标明为tb_users

然后分别在属性上添加@DatabaseField(columnName = "name") ,columnName的值为该字段在数据中的列名

@DatabaseField(generatedId = true) ,generatedId 表示id为主键且自动生成

3、编写DAO类

原生的数据库操作,需要继承SQLiteOpenHelper,这里我们需要继承OrmLiteSqliteOpenHelper

DatabaseHelper:

1 packagecom.my.db;2

3 importjava.sql.SQLException;4

5 importandroid.content.Context;6 importandroid.database.sqlite.SQLiteDatabase;7

8 importcom.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;9 importcom.j256.ormlite.dao.Dao;10 importcom.j256.ormlite.support.ConnectionSource;11 importcom.j256.ormlite.table.TableUtils;12 importcom.my.bean.Users;13

14

15 public class DatabaseHelper extendsOrmLiteSqliteOpenHelper{16 private static final String TABLE_NAME = "users.db";17 /**

18 * usersDao,每张表对应一个19 */

20 private DaousersDao ;21

22 private staticDatabaseHelper instance;23 publicDatabaseHelper(Context context) {24 super(context, TABLE_NAME, null, 1);25 //TODO Auto-generated constructor stub

26 }27

28 @Override29 public voidonCreate(SQLiteDatabase arg0, ConnectionSource arg1) {30 //TODO Auto-generated method stub

31 try{32 TableUtils.createTable(arg1, Users.class);33 }catch(Exception e){34 e.printStackTrace();35 }36 }37

38 @Override39 public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, intarg2,40 intarg3) {41 try

42 {43 TableUtils.dropTable(connectionSource, Users.class, true);44 onCreate(arg0, connectionSource);45 } catch(SQLException e)46 {47 e.printStackTrace();48 }49

50 }51 /**

52 * 单例获取该Helper53 */

54 public static synchronizedDatabaseHelper getHelper(Context context){55 if(instance == null){56 synchronized (DatabaseHelper.class) {57 if(instance == null){58 instance = newDatabaseHelper(context);59 }60 }61 }62 returninstance;63 }64

65 /**

66 * 获得userDao67 *@throwsSQLException68 */

69 public Dao getUsersDao() throwsSQLException{70 if(usersDao == null){71 usersDao = getDao(Users.class);72 }73 returnusersDao;74 }75

76

77 /**

78 * 释放资源79 */

80

81 @Override82 public voidclose() {83 //TODO Auto-generated method stub

84 super.close();85 usersDao = null;86 }87 }

这里我们需要继承OrmLiteSqliteOpenHelper,其实就是间接继承了SQLiteOpenHelper

然后需要实现两个方法:

1、onCreate(SQLiteDatabase database,ConnectionSource connectionSource)

创建表,我们直接使用ormlite提供的TableUtils.createTable(connectionSource, User.class);进行创建~

2、onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion)

更新表,使用ormlite提供的TableUtils.dropTable(connectionSource, User.class, true);进行删除操作~

删除完成后,别忘了,创建操作:onCreate(database, connectionSource);

然后使用单例公布出一个创建实例的方法,getHelper用于获取我们的help实例;

4、显示在Activity

MainActivity:

packagecom.example.ormlitedemo;importjava.util.List;importandroid.app.Activity;importandroid.content.Context;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.LinearLayout;importandroid.widget.TableLayout;importandroid.widget.TableRow;importandroid.widget.TableRow.LayoutParams;importandroid.widget.TextView;importcom.j256.ormlite.dao.Dao;importcom.my.bean.Users;importcom.my.db.DatabaseHelper;public class MainActivity extendsActivity {private DaousersDao;privateContext context;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

context= this;//新建一个表格布局

TableLayout tblay = new TableLayout(this);//给该Activity设置布局

setContentView(tblay,newTableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));//插入数据

init();try{//取出数据

List users =getList();//遍历集合

for(Users u : users) {//创建一行

TableRow tr = new TableRow(this);//新建文本视图

TextView v1 = new TextView(this);

TextView v2= new TextView(this);

TextView v3= new TextView(this);

v1.setText(u.getId()+"");

v2.setText(u.getName());

v3.setText(u.getDesc());//把文本视图添加到TableRow中

tr.addView(v1,new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1));

tr.addView(v2,new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1));

tr.addView(v3,new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1));//把TableRow添加到TableLayout中

tblay.addView(tr);

}

}catch(Exception e){

e.printStackTrace();

}

}//插入数据

public voidinit(){

DatabaseHelper helper=DatabaseHelper.getHelper(context);try{

Users u1= new Users("zhy","2b铅笔");

usersDao=helper.getUsersDao();

usersDao.create(u1);

u1= new Users("zhy2", "2b铅笔");

usersDao.create(u1);

u1= new Users("zhy3", "2b铅笔");

usersDao.create(u1);

u1= new Users("zhy4", "2b铅笔");

usersDao.create(u1);

u1= new Users("zhy5", "2b铅笔");

usersDao.create(u1);

u1= new Users("zhy6", "2b铅笔");

usersDao.create(u1);

}catch(Exception e){

e.printStackTrace();

}

}//查询所有操作

public ListgetList(){

DatabaseHelper helper=DatabaseHelper.getHelper(context);

List users = null;try{

users=helper.getUsersDao().queryForAll();

}catch(Exception e){

e.printStackTrace();

}returnusers;

}//删除操作

public voidDeleteUser(){

DatabaseHelper helper=DatabaseHelper.getHelper(context);try{

helper.getUsersDao().deleteById(2);

}catch(Exception e){

e.printStackTrace();

}

}//更新操作

public voidUpdateUser(){

DatabaseHelper helper=DatabaseHelper.getHelper(context);try{

Users u1= new Users("lisi", "4b铅笔");

u1.setId(3);

helper.getUsersDao().update(u1);

}catch(Exception e){

e.printStackTrace();

}

}

@Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);return true;

}

@Overridepublic booleanonOptionsItemSelected(MenuItem item) {//Handle action bar item clicks here. The action bar will//automatically handle clicks on the Home/Up button, so long//as you specify a parent activity in AndroidManifest.xml.

int id =item.getItemId();if (id ==R.id.action_settings) {return true;

}return super.onOptionsItemSelected(item);

}

}

运行结果如下:

好了,Ormlite的简单操作就说这里了。。。。希望对大家有用,不喜勿喷

android ormlite 查询,Android—Ormlite框架简单的操作数据库相关推荐

  1. android activity查询,android中activity.findViewById()方法查找的是什么?

    //代码1: package com.example.testsdk2; import android.app.Activity; import android.content.Intent; imp ...

  2. 安卓简单的操作数据库

    安卓本身自带数据,一般用于保存一些数据.操作数据库首先要创建,其次是增删改查.看过诸多网友的介绍,现简单的总结如下:(再次感谢大家的分享)代码奉上: package com.myapplication ...

  3. 使用Spring JDBC框架连接并操作数据库

    在前一篇博文JAVA通过JDBC连接并操作MySQL数据库中,我们知道如何通过JDBC连接并操作数据库,但是请看程序,整个程序连接数据库和关闭数据库占了很大一部分代码量,而且每次我们执行一下数据库操作 ...

  4. android ormlite 查询,带引号的ORMLite查询,Android

    我正在使用ORMLite,使用Table RecentSearch: @DatabaseTable(tableName = LocalStorageConfig.sql_RECENTS_TABLE_N ...

  5. android经纬度查询,Android - 经纬度获取

    我仅仅是想要个定位,接入个SDK做卵 下面网上找的一个工具类,可用... 获取位置权限: 工具类: /** * Desc: 简单定位工具类 * Created by lisheny on 2018/9 ...

  6. android 定时查询,android – 如何检查计时器是否仍在运行?

    我尝试在服务中发送短信.如果没有发送短信意味着我在一段时间后重新启动服务,为此我使用定时器.如果发送的短信意味着我想停止定时器,为了停止定时器我使用定时器.取消();在此之前,我要检查计时器是否正在运 ...

  7. android ppt sdk,Android SDK及环境配置.ppt

    Android SDK及环境配置 Android SDK及环境配置 沈青海 sunxml@ Copyright 2008-2009 Farsight.All rights reserved. SDK ...

  8. android web通讯录,Android手机开发之通讯录

    Android手机开发--通讯录 实现增加.查询.修改.删除的功能,输入联系人信息,点击"添加"按钮,可以添加联系人信息到数据库:点击"查询"按钮,会发现添加的 ...

  9. android ormlite 查询,关于androidORMLite的一些总结

    OrmLite是一个数据库操作辅助的开源框架,底层还是Sqlite.O-R-M是Object relational mapping(对象关系映射)的缩写,即业务实体对象与关系型数据库之间的映射.对象中 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(二十五) - 使用PID控制四轴飞行器 - 四轴飞行器(四旋翼)模拟器
  2. CRM——插件流程回顾
  3. 机器物联网的四大价值流
  4. [Spring5]IOC容器_Bean管理XML方式_创建对象_set注入属性and有参构造注入属性
  5. Ajax的XMLHttpRequest对象
  6. linux清除历史命令记录_Linux运维常用维护命令记录,不是长篇理论,干的实用...
  7. CSS animation 与 transition 有何区别?
  8. 《HTML5+CSS3网页设计入门必读》——1.11 小结
  9. flink 自定义 窗口_Flink源码分析: 窗口机制的执行流程
  10. MySql数据恢复方法个人总结
  11. js浏览器 文本语音播报
  12. 如何从论文中挖掘和研究思路的办法
  13. Linux基础教程 (第二版) 第2版
  14. 最全最丰富的随机图片调用接口——三千之图
  15. 从外包测试到阿里巴巴,一位三本女生逆袭之路
  16. 统计一个字符串中大写字母,小写字母,以及数字的个数。
  17. tga怎么转成png格式?
  18. 矩阵乘法与点乘的区别
  19. minicom 的使用
  20. Quartusii13.0 bdf文件中元器件名称显示不全解决

热门文章

  1. 亚马逊(Amazon)赢利推广模式分析
  2. python昆山培训
  3. 访达桌面高清动态壁纸
  4. python的环境变量配置
  5. element ui 表格动态列显示空白bug 修复
  6. 无偏估计唯一性_请问,参数估计的无偏性和一致性有什么异同吗?
  7. 如何在Windows中查询证书颁发机构已颁发的证书
  8. APP测试心得和体会
  9. 华为matebookx2020黑苹果安装支持触摸板触摸屏wifi蓝牙,三星pm981也可以
  10. Instr函数的用法