android ormlite 查询,Android—Ormlite框架简单的操作数据库
大家在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框架简单的操作数据库相关推荐
- android activity查询,android中activity.findViewById()方法查找的是什么?
//代码1: package com.example.testsdk2; import android.app.Activity; import android.content.Intent; imp ...
- 安卓简单的操作数据库
安卓本身自带数据,一般用于保存一些数据.操作数据库首先要创建,其次是增删改查.看过诸多网友的介绍,现简单的总结如下:(再次感谢大家的分享)代码奉上: package com.myapplication ...
- 使用Spring JDBC框架连接并操作数据库
在前一篇博文JAVA通过JDBC连接并操作MySQL数据库中,我们知道如何通过JDBC连接并操作数据库,但是请看程序,整个程序连接数据库和关闭数据库占了很大一部分代码量,而且每次我们执行一下数据库操作 ...
- android ormlite 查询,带引号的ORMLite查询,Android
我正在使用ORMLite,使用Table RecentSearch: @DatabaseTable(tableName = LocalStorageConfig.sql_RECENTS_TABLE_N ...
- android经纬度查询,Android - 经纬度获取
我仅仅是想要个定位,接入个SDK做卵 下面网上找的一个工具类,可用... 获取位置权限: 工具类: /** * Desc: 简单定位工具类 * Created by lisheny on 2018/9 ...
- android 定时查询,android – 如何检查计时器是否仍在运行?
我尝试在服务中发送短信.如果没有发送短信意味着我在一段时间后重新启动服务,为此我使用定时器.如果发送的短信意味着我想停止定时器,为了停止定时器我使用定时器.取消();在此之前,我要检查计时器是否正在运 ...
- android ppt sdk,Android SDK及环境配置.ppt
Android SDK及环境配置 Android SDK及环境配置 沈青海 sunxml@ Copyright 2008-2009 Farsight.All rights reserved. SDK ...
- android web通讯录,Android手机开发之通讯录
Android手机开发--通讯录 实现增加.查询.修改.删除的功能,输入联系人信息,点击"添加"按钮,可以添加联系人信息到数据库:点击"查询"按钮,会发现添加的 ...
- android ormlite 查询,关于androidORMLite的一些总结
OrmLite是一个数据库操作辅助的开源框架,底层还是Sqlite.O-R-M是Object relational mapping(对象关系映射)的缩写,即业务实体对象与关系型数据库之间的映射.对象中 ...
最新文章
- Udacity机器人软件工程师课程笔记(二十五) - 使用PID控制四轴飞行器 - 四轴飞行器(四旋翼)模拟器
- CRM——插件流程回顾
- 机器物联网的四大价值流
- [Spring5]IOC容器_Bean管理XML方式_创建对象_set注入属性and有参构造注入属性
- Ajax的XMLHttpRequest对象
- linux清除历史命令记录_Linux运维常用维护命令记录,不是长篇理论,干的实用...
- CSS animation 与 transition 有何区别?
- 《HTML5+CSS3网页设计入门必读》——1.11 小结
- flink 自定义 窗口_Flink源码分析: 窗口机制的执行流程
- MySql数据恢复方法个人总结
- js浏览器 文本语音播报
- 如何从论文中挖掘和研究思路的办法
- Linux基础教程 (第二版) 第2版
- 最全最丰富的随机图片调用接口——三千之图
- 从外包测试到阿里巴巴,一位三本女生逆袭之路
- 统计一个字符串中大写字母,小写字母,以及数字的个数。
- tga怎么转成png格式?
- 矩阵乘法与点乘的区别
- minicom 的使用
- Quartusii13.0 bdf文件中元器件名称显示不全解决