zoukankan      html  css  js  c++  java
  • Android 数据库 LiteOrm 的使用

    1、什么是 LiteOrm

          LiteOrm是一个小巧、强大、比系统自带数据库操作性能快1倍的 android ORM 框架类库,开发者一行代码实现数据库的增删改查操作,以及实体关系的持久化和自动映射。

    2、github地址

          https://github.com/litesuits/android-lite-orm

    3、使用

         下载最新的jar 包,然后导入到项目中

    4、创建 orm 实例

        一个数据库对应一个LiteOrm的实例,如果一个App只有一个数据库,那么LiteOrm应该是全局单例的。 如果多次新建LiteOrm实例,系统会提示你应该关闭之前的数据库,也可能会引起其他未知错误。

       保持单例:

    static LiteOrm liteOrm;
    
    if (liteOrm == null) {
        liteOrm = LiteOrm.newSingleInstance(this, "liteorm.db");
    }
    liteOrm.setDebugged(true); // open the log

     为了在项目中使用方便,我们创建了一个 DatabaseManager  工具类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    package com.app.liteorm;
     
     
    import com.litesuits.orm.LiteOrm;
    import com.litesuits.orm.db.assit.QueryBuilder;
     
    import java.util.List;
     
    /**
     * Created by ${zyj} on 2016/7/4.
     */
    public class DatabaseManager {
     
        private static LiteOrm liteOrm;
        private static DatabaseManager ourInstance = new DatabaseManager();
     
        private DatabaseManager() {
            liteOrm = LiteOrm.newCascadeInstance( MyAppLication.getContext() , "wifi.db" ) ;
        }
     
        public static DatabaseManager getInstance() {
            return ourInstance;
        }
     
        /**
         * 插入一条记录
         * @param t
         */
        public <T> long insert(T t) {
            return liteOrm.save(t);
        }
     
        /**
         * 插入所有记录
         * @param list
         */
        public <T> void insertAll(List<T> list) {
            liteOrm.save(list);
        }
     
        /**
         * 查询所有
         * @param cla
         * @return
         */
        public <T> List<T> getQueryAll(Class<T> cla) {
            return liteOrm.query(cla);
        }
     
        /**
         * 查询  某字段 等于 Value的值
         * @param cla
         * @param field
         * @param value
         * @return
         */
        public <T> List<T> getQueryByWhere(Class<T> cla, String field, String[] value) {
            return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));
        }
     
        /**
         * 查询  某字段 等于 Value的值  可以指定从1-20,就是分页
         * @param cla
         * @param field
         * @param value
         * @param start
         * @param length
         * @return
         */
        public <T> List<T> getQueryByWhereLength(Class<T> cla, String field, String[] value, int start, int length) {
            return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value).limit(start, length));
        }
     
        /**
         * 删除一个数据
         * @param t
         * @param <T>
         */
        public <T> void delete( T t){
            liteOrm.delete( t ) ;
        }
     
        /**
         * 删除一个表
         * @param cla
         * @param <T>
         */
        public <T> void delete( Class<T> cla ){
            liteOrm.delete( cla ) ;
        }
     
        /**
         * 删除集合中的数据
         * @param list
         * @param <T>
         */
        public <T> void deleteList( List<T> list ){
            liteOrm.delete( list ) ;
        }
     
        /**
         * 删除数据库
         */
        public void deleteDatabase(){
            liteOrm.deleteDatabase() ;
        }
     
    }

    使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    package com.app.liteorm;
     
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
     
    import java.util.ArrayList;
    import java.util.List;
     
    public class MainActivity extends AppCompatActivity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final TestModel testModel = new TestModel() ;
            testModel.setId( 1001 ) ;
            testModel.setName( "jack" ) ;
            testModel.setPassword( "123456" ) ;
            testModel.setLogin( true );
     
            TestModel testMode2 = new TestModel() ;
            testMode2.setId( 1002 ) ;
            testMode2.setName( "jack2" ) ;
            testMode2.setPassword( "123456" ) ;
            testMode2.setLogin( false );
     
            final List<TestModel> list = new ArrayList<>() ;
            list.add( testModel ) ;
            list.add( testMode2 ) ;
     
     
            //插入一条数据
            DatabaseManager.getInstance().insert( testModel ) ;
     
            //插入一个集合
            DatabaseManager.getInstance().insertAll( list ) ;
     
            //查询所有
            List<TestModel> queryList = DatabaseManager.getInstance().getQueryAll( TestModel.class ) ;
     
            //删除一个数据
            findViewById( R.id.delete_object ).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    DatabaseManager.getInstance().delete( testModel );
                }
            });
     
            //删除一个集合
            findViewById( R.id.delete_database ).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    DatabaseManager.getInstance().deleteList( list );
                }
            });
     
            //删除一个表
            findViewById( R.id.delete_table ).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    DatabaseManager.getInstance().delete( TestModel.class );
                }
            });
     
            //删除整个数据库
            findViewById( R.id.delete_database ).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    DatabaseManager.getInstance().deleteDatabase();
                }
            });
        }
    }

      

    5、相关代码已上传至 github   

  • 相关阅读:
    IOS学习笔记3—Objective C—简单的内存管理
    IOS学习笔记2—Objective C—类、属性、方法
    IOS学习笔记1—Iphone程序运行流程
    IOS学习笔记37——ViewController生命周期详解
    [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系
    iOS: 如何正确的绘制1像素的线
    Swift 2.0初探:值得注意的新特性
    Swift语言Storyboard教程:第二部
    C# partial 关键字详解
    spring-boot工程中,jpa下hibernate的ddl-auto的各种属性
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/7561500.html
Copyright © 2011-2022 走看看