android 使用sqlite 和 okhttp

简介: 本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53335123 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys1,使用sqlite上回初步的使用了下sqlite。 这次使用sqlite创建一个表,并且使用唯一索引。CREAT

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53335123 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,使用sqlite


上回初步的使用了下sqlite。
这次使用sqlite创建一个表,并且使用唯一索引。

CREATE TABLE IF NOT EXISTS person (
  id       INTEGER PRIMARY KEY,
  name  VARCHAR(30) not null,
  age         INTEGER
  city  VARCHAR(30) not null
 );

CREATE UNIQUE INDEX IF NOT EXISTS p_name_idx ON person(name);

sql语句增加 if not exists 的判断。
可以避免执行错误。
但是在sqlite上面,不能在建表语句上增加索引。
只能再单独创建一次索引。

使用sqlite的常用命令:
http://www.runoob.com/sqlite/sqlite-commands.html
写的挺好的。
其实

sqlite> .schema
CREATE TABLE person (
  id       INTEGER PRIMARY KEY,
  name  VARCHAR(30) not null,
  age         INTEGER
  city  VARCHAR(30) not null
 );
CREATE UNIQUE INDEX p_name_idx ON person(name);
sqlite> .tables
person

sqlite> .stats
Memory Used:                         506608 (max 515984) bytes
Number of Outstanding Allocations:   164 (max 196)
Number of Pcache Overflow Bytes:     8192 (max 8192) bytes
Number of Scratch Overflow Bytes:    0 (max 0) bytes
Largest Allocation:                  425600 bytes
Largest Pcache Allocation:           4096 bytes
Largest Scratch Allocation:          0 bytes
Lookaside Slots Used:                3 (max 44)
Successful lookaside attempts:       111
Lookaside failures due to size:      74
Lookaside failures due to OOM:       0
Pager Heap Usage:                    17852 bytes
Page cache hits:                     10
Page cache misses:                   0
Page cache writes:                   4
Schema Heap Usage:                   1136 bytes
Statement Heap/Lookaside Usage:      0 bytes

sqlite> .help

经常用到的就几个。忘记了就使用.help 查看下命令。
.schema 查看表,索引语句。

2,使用okttp


在android 使用okhttp还是非常的方便的。
并且。okhttp的官网网站也给出了,很简单的demo。
github 项目地址:
https://github.com/square/okhttp
官方文档:
http://square.github.io/okhttp/
get和post请求都是非常简单的:

##### get 请求
OkHttpClient client = new OkHttpClient();
String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  Response response = client.newCall(request).execute();
  return response.body().string();
}


###### post请求:
public static final MediaType JSON
    = MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  Response response = client.newCall(request).execute();
  return response.body().string();
}

3,在android 上使用okhttp


非常的简单。
但是在android 4.0 上面要求,主线程不能请求http。
要再创建一个线程请求。

Button btn1 = (Button) findViewById(R.id.button1);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //okhttp get请求。
                String url = "https://m.baidu.com/";
                final OkHttpClient client = new OkHttpClient();
                final Request request = new Request.Builder()
                        .url(url)
                        .build();
                //android 4.0 以上不支持主线程访问http。
                //android.os.NetworkOnMainThreadException
                //java.lang.SecurityException: Permission denied (missing INTERNET permission?)
                //     <uses-permission android:name="android.permission.INTERNET" />
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            //返回结果。
                            Response response = client.newCall(request).execute();
                            String out = response.body().string();
                            Log.v(TAG, out);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
        });

需要引入okhttp的gradle配置。

    //增加okio 和okhttp 依赖。
    compile 'com.squareup.okio:okio:1.11.0'
    compile 'com.squareup.okhttp3:okhttp:3.4.2'

同时在AndroidManifest.xml中加入网络请求的权限。

    <uses-permission android:name="android.permission.INTERNET" />

还有一种方法。就是配合volley使用。
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0720/3209.html

4,总结


本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53335123 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

android 下面使用sqlite和okhtt还是很方便的。
sqlite就是一个数据库,也可以创建索引,唯一索引。
sqlite没有设置自增的地方,主键会自己增加。
okhtt用的是最多的。代码也比较简单。

目录
相关文章
|
5月前
|
存储 缓存 Android开发
安卓Jetpack Compose+Kotlin, 使用ExoPlayer播放多个【远程url】音频,搭配Okhttp库进行下载和缓存,播放完随机播放下一首
这是一个Kotlin项目,使用Jetpack Compose和ExoPlayer框架开发Android应用,功能是播放远程URL音频列表。应用会检查本地缓存,如果文件存在且大小与远程文件一致则使用缓存,否则下载文件并播放。播放完成后或遇到异常,会随机播放下一首音频,并在播放前随机设置播放速度(0.9到1.2倍速)。代码包括ViewModel,负责音频管理和播放逻辑,以及UI层,包含播放和停止按钮。
|
6月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
79 0
|
6月前
|
XML Java Android开发
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
752 0
|
6月前
|
安全 Android开发
Android之OKHttp基本使用和OKHttp发送https请求安全认证
Android之OKHttp基本使用和OKHttp发送https请求安全认证
168 0
|
5月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
214 2
|
5月前
|
缓存 Android开发 Kotlin
【安卓app开发】kotlin Jetpack Compose框架 | 先用OKhttp下载远程音频文件再使用ExoPlayer播放
使用 Kotlin 的 Jetpack Compose 开发安卓应用时,可以结合 OkHttp 下载远程音频文件和 ExoPlayer 进行播放。在 `build.gradle` 添加相关依赖后,示例代码展示了如何下载音频并用 ExoPlayer 播放。代码包括添加依赖、下载文件、播放文件及简单的 Compose UI。注意,示例未包含完整错误处理和资源释放,实际应用需补充这些内容。
|
5月前
|
存储 Android开发 Kotlin
开发安卓app OKhttp下载后使用MediaPlayer播放
在Android Jetpack Compose应用程序中,要使用OkHttp下载远程音频文件并在本地播放,你需要完成以下几个步骤: 1. **添加依赖**:确保`build.gradle`文件包含OkHttp和Jetpack Compose的相关依赖。 2. **下载逻辑**:创建一个`suspend`函数,使用OkHttp发起网络请求下载音频文件到本地。 3. **播放逻辑**:利用`MediaPlayer`管理音频播放状态。 4. **Compose UI**:构建用户界面,包含下载和播放音频的按钮。
|
5月前
|
SQL 存储 数据库
48. 【Android教程】数据库:SQLite 的使用
48. 【Android教程】数据库:SQLite 的使用
69 1
|
5月前
|
存储 缓存 数据库
Android之SQLite数据库使用详解
Android之SQLite数据库使用详解
|
5月前
|
存储 数据库 Android开发
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
156 0