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用的是最多的。代码也比较简单。

目录
相关文章
|
3月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
40 0
|
4月前
|
XML Java Android开发
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
132 0
|
4月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
148 0
|
8月前
|
API 数据库 Android开发
Android 中SQLite数据库的使用详解
Android 中SQLite数据库的使用详解
63 0
|
8月前
|
数据库 Android开发 数据库管理
Android使用Room操作SQLite数据库让其变得无比高效和简洁(进一步完善用RecyclerView显示数据库中的数据)
Android使用Room操作SQLite数据库让其变得无比高效和简洁(进一步完善用RecyclerView显示数据库中的数据)
52 0
|
4月前
|
缓存 JSON Android开发
[Android]网络框架之OkHttp(详细)(kotlin)
[Android]网络框架之OkHttp(详细)(kotlin)
141 0
|
4月前
|
XML JSON Java
Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)
Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)
22 0
|
4月前
|
XML 数据库 数据安全/隐私保护
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
40 0
|
4月前
|
SQL 数据库 数据安全/隐私保护
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
58 0
|
5月前
|
Shell 数据库 开发工具
(超详细)android中SqLite数据库的使用(一文包懂包会)
(超详细)android中SqLite数据库的使用(一文包懂包会)
103 0