MCPcopy Index your code
hub / github.com/Sopage/android-orm

github.com/Sopage/android-orm @v3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0 ↗ · + Follow
79 symbols 192 edges 12 files 31 documented · 39%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

cube-orm

此项目是为Android简单封装的SQLite数据库ORM, 实现自动建表和自动更新升级,实现基本的单表CRUD,提高数据库开发效率。

使用方法

Android Studio引用方式:

compile 'com.github.supersanders:cube-orm:3.0@aar'

混淆配置:

-keep public class * extends com.sanders.db.IDColumn

约定:

所有的实体都要继承IDColumn.java类,并遵守以下命名规范:

表名称和Java类名称对应表:

表名称 Java类名 备注
table_name TableName 表名称必须以小写字母开始,单词之间用“_”下划线分开(当然也可以全部小写不分开)

表字段名称和Java类属性字段名称对应表:

表字段 Java字段 备注
field_name fieldName 表字段名称必须以小写字母开始,单词之间用“_”下划线分开(当然也可以全部小写不分开)。按照Java驼峰命名规范命名Java字段属性名称

数据库创建方式:

创建方式 说明
系统创建数据库 支持自动建表,自动升级。如果使用自动升级,若表字段类型有变则会重新创建新表并备份旧表为 表名_oldVersion,这需要手动将数据导入新表。
外部数据库 不支持自动建表和升级。另外主键名称必须是primary_key
系统创建表
DBContext dbContext = new DBContext("database", 1, new OnDBUpgrade() {
        @Override
        public boolean onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            //return false 自己处理升级,return true 自动处理
            return false;
        }
    });
dbContext.addTableBean(TableModel.class).addTableBean(TableBean.class);
DBProxy db = dbContext.buildDBProxy(this);
设置外部数据库,主键名称必须是primary_key
DBFile dbFile = new DBFile(file path or File);
DBProxy db = dbFile.buildDBProxy();

Extension points exported contracts — how you extend this code

OnDBUpgrade (Interface)
数据库升级操作类 Created by sanders on 15/5/9. [2 implementers]
library/src/main/java/com/sanders/db/OnDBUpgrade.java

Core symbols most depended-on inside this repo

close
called by 26
library/src/main/java/com/sanders/db/DBProxy.java
getDatabase
called by 17
library/src/main/java/com/sanders/db/DBProxy.java
getClassInfo
called by 14
library/src/main/java/com/sanders/db/DBProxy.java
getTableName
called by 10
library/src/main/java/com/sanders/db/ClassInfo.java
getContentValues
called by 6
library/src/main/java/com/sanders/db/ClassInfo.java
getPrimaryKey
called by 4
library/src/main/java/com/sanders/db/IDColumn.java
getDBFieldType
called by 3
library/src/main/java/com/sanders/db/ClassInfo.java
setPrimaryKey
called by 3
library/src/main/java/com/sanders/db/IDColumn.java

Shape

Method 67
Class 11
Interface 1

Languages

Java100%

Modules by API surface

library/src/main/java/com/sanders/db/DBProxy.java20 symbols
app/src/main/java/com/sanders/db/simple/TableModel.java14 symbols
library/src/main/java/com/sanders/db/ClassInfo.java13 symbols
library/src/main/java/com/sanders/db/SQLiteOpenHelperProxy.java8 symbols
library/src/main/java/com/sanders/db/DBContext.java6 symbols
library/src/main/java/com/sanders/db/DBFile.java4 symbols
app/src/main/java/com/sanders/db/simple/SimpleActivity.java4 symbols
library/src/main/java/com/sanders/db/IDColumn.java3 symbols
library/src/main/java/com/sanders/db/OnDBUpgrade.java2 symbols
library/src/androidTest/java/com/sanders/db/sanders/com/library/ApplicationTest.java2 symbols
app/src/androidTest/java/com/sanders/db/sanders/com/dbproject/ApplicationTest.java2 symbols
app/src/main/java/com/sanders/db/simple/TableBean.java1 symbols

For agents

$ claude mcp add android-orm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact