Android精通之OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架
版权声明:未经博主允许不得转载
OrmLite基础知识
什么是OrmLite框架,在我没用这个框架时,不知道它有多好,用了才知道很方便哦,为了提供开发效率,Android开发者需要懂得运行多种框架进行开发。对于OrmLite框架是一种很轻量级的数据库操作框架,它的底层是由反射机制实现的。
OrmLite框架
来认识一下OrmLite的官网:http://ormlite.com/releases/
展示
接下来我们下载4.48的jar
包,分别是core
和android
的。
接下来你会看到
@DatabaseField(columnName = "name")
这你就被奇怪了,这大概是OrmLite
的框架的特性吧~
在OrmLiteSqlite
中,你会编写一个数据库帮助类,继承OrmLiteSqliteOpenHelper
,在该类中创建数据库和表的创建。
并重写两个方法:
onCreate()
和onUpgrade()
在OrmLite
框架中:
OrmLite
使用注解
自己创建一个实体类对应类
@中代表数据表(表名=“值为表名的名称,字段列的名称”)
@DatabaseTable(tableName="student")
public class Student{
}
@generatedId表示id为主键,true自动生成
@DatabaseField(generatedId = true)
private int id;
@columnName为字段名,同时下方
@DatabaseField(columnName = "name")
private String name;
@ForeignCollectionField为外键
创建数据库帮助类
在继承jar
包中要添加两包类:
ormlite-android-4.48
ormlite-core-4.48
DatabaseHelper
继承于OrmLiteSqliteOpenHelper
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
//这里创建一个构造函数,有参
private DatabaseHelper(Context context) {
super(context, DB_NAME, null, 2);
}
}
创建帮助类继承OrmLiteSqliteOpenHelper
会自动导入两个方法:
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {
}
在onCreate中创建数据表,在onUpgrade中创建表的更新,onUpgrade先删除表在创建新的表更新。
TableUtils为表工具类
//onCreate
TableUtils.createTable(connectionSource,Student.class);
//onUpgrade
TableUtils.dropTable(connectionSource,Student.class,true);
onCreate(sqLiteDatabase,connectionSource);
在创建帮助类中,要获取DAO对象
//如下所示:
public Dao getDao(class class)throws SQLException{
...
}
Picasso框架
用于加载图片列表
onCreate
//设置图像
Picasso picasso = Picasso.with(this);
RequestCreator request = picasso.load(PATH_IMAGE_URI);
//网络加载错误,显示的图片
request.error(R.mipmap.ic_launcher);
//裁剪
request.resize(100, 100);
//设置占位符图片
request.placeholder(R.mipmap.ic_launcher);
Picasso.with(this).setIndicatorsEnabled(true);
class IconAdapter extends BaseAdapter {
private List<String> mDataUries;
//public int getCount()
//public Object getItem(int i)
//public long getItemId(int i)
// public View getView(int i, View view, ViewGroup viewGroup)
}
OKio框架
历史:
- java.io
- java.nio
- okio
OKio访问,存储,处理数据越来越方便
OKHttp框架
An HTTP+HTTP/2 client for Android and Java applications.
适用于Android和Java应用程序的HTTP和HTTP / 2客户端。
- Apache HttpClient
- HttpURLConnetion
- OkHttp
OKHttp:https://github.com/square/okhttp
or Gradle:
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
如果觉得不错,那就点个赞吧!❤️
定位:分享 Android&Java 知识点
Android精通之OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架的更多相关文章
- 【转载】Android开源:数据库ORM框架GreenDao学习心得及使用总结
转载链接:http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁 ...
- Android开源框架——Picasso
开篇——介绍Picasso (Picasso是什么?)Picasso:A Powerfull Image Downloading and Caching Library for Android,即An ...
- android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
android 一个SQLite数据库多个数据表(带demo) 前言 demo演示 一.搭建 二.建立实体类 三.建立数据库操作类 ...
- OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据
OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的 ...
- Android开源框架源码分析:Okhttp
一 请求与响应流程 1.1 请求的封装 1.2 请求的发送 1.3 请求的调度 二 拦截器 2.1 RetryAndFollowUpInterceptor 2.2 BridgeInterceptor ...
- Android 框架学习之 第一天 okhttp & Retrofit
最近面试,一直被问道新技术新框架,这块是短板,慢慢补吧. 关于框架的学习,分几个步骤 I.框架的使用 II.框架主流使用的版本和Android对应的版本 III.框架的衍生使用比如okhttp就会有R ...
- 【转】Android 使用ORMLite 操作数据库
Android 使用ORMLite 操作数据库 用过ssh,s2sh的肯定不会陌生 ,应该一学就会 第一步: 下载ormlite-android-4.41.jar和ormlite-core-4.4 ...
- Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼:http://blog.csdn.net/hejjunlin/article/details/52532085 不知不觉到第九篇了,感觉还有 ...
- Android八门神器(一): OkHttp框架源码解析
HTTP是我们交换数据和媒体流的现代应用网络,有效利用HTTP可以使我们节省带宽和更快地加载数据,Square公司开源的OkHttp网络请求是有效率的HTTP客户端.之前的知识面仅限于框架API的调用 ...
随机推荐
- ansible自动化运维详细教程及playbook详解
前言 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible.SaltStack.Puppet.Fabric 等. Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务的开 ...
- 并发系列3:Lock锁以及核心类AQS
Java Lock类提供了语言级别的Synchronized,Lock与Condition配合与Synchronized配合object一样实现了等待/通知机制.但它提供了更高的灵活性,有:1尝试非阻 ...
- C++ 11 创建和使用 unique_ptr
unique_ptr 不共享它的指针.它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法.只能移动unique_ptr.这意味着,内存资 ...
- python 之C3算法
C3算法只要针对的Python2.3版本之后出现的新式类MRO(method resolution order) -------继承方法查询顺序;而经典类MRO则遵循的是深度优先遍历(树形结构) (1 ...
- Codeforces Round #508 (Div. 2)
Codeforces Round #508 (Div. 2) http://codeforces.com/contest/1038 A #include<bits/stdc++.h> us ...
- 100-days: nineteen
Title: Figure skating(花样滑冰): Olympic(奥林匹克的) champion Hanyu says '100 percent' on(引出时机) return to ice ...
- input中用中文输入法下的全角·替换英文输入法下的句号.
核心语句 <input type="text" onkeyup="this.value=this.value.replace(/\./g, '·')" o ...
- 560. Subarray Sum Equals K 求和为k的子数组个数
[抄题]: Given an array of integers and an integer k, you need to find the total number of continuous s ...
- [leetcode]59. Spiral Matrix II螺旋遍历矩阵2
Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spiral or ...
- 将Promise融会贯通之路
前端初学者经常会问,我如何在ajax1结束之后才启动ajax2呢?我怎么做才能在所有的ajax结束之后触发某程序呢?亦或是哎真是烦,5个ajax套在一起,原来的逻辑是什么呀! 一个稍微有点经验的前端程 ...