{"id":25569615,"url":"https://github.com/automvc/bee","last_synced_at":"2026-01-14T03:18:43.319Z","repository":{"id":37677654,"uuid":"138182666","full_name":"automvc/bee","owner":"automvc","description":"Bee is an AI, easy and high efficiency ORM framework,support JDBC,Cassandra,Mongodb,Sharding,Android,HarmonyOS. ","archived":false,"fork":false,"pushed_at":"2025-09-21T15:25:24.000Z","size":27348,"stargazers_count":627,"open_issues_count":3,"forks_count":59,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-09-21T17:26:53.438Z","etag":null,"topics":["android-orm","dao","mongodb-orm","orm","sharding-jdbc"],"latest_commit_sha":null,"homepage":"https://github.com/automvc/bee","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/automvc.png","metadata":{"files":{"readme":"README.md","changelog":"Changed_Log.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-06-21T14:37:07.000Z","updated_at":"2025-09-21T15:02:30.000Z","dependencies_parsed_at":"2023-02-19T01:16:17.097Z","dependency_job_id":"c6b7eb19-b2f5-4e51-85da-a5b13724cb65","html_url":"https://github.com/automvc/bee","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/automvc/bee","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automvc%2Fbee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automvc%2Fbee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automvc%2Fbee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automvc%2Fbee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/automvc","download_url":"https://codeload.github.com/automvc/bee/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automvc%2Fbee/sbom","scorecard":{"id":217347,"data":{"date":"2025-08-11","repo":{"name":"github.com/automvc/bee","commit":"87648e74d125ceadfcf54044af0d8344ce96b910"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Maintained","score":10,"reason":"13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":5,"reason":"binaries present in source code","details":["Warn: binary detected: api doc/bee-1.11-CN-sources.jar:1","Warn: binary detected: api doc/bee-1.17-CN-sources.jar:1","Warn: binary detected: api doc/bee-2.0-javadoc.jar:1","Warn: binary detected: api doc/bee-2.1-javadoc.jar:1","Warn: binary detected: api doc/bee-2.4.0-javadoc.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.5.2 not signed: https://api.github.com/repos/automvc/bee/releases/237057375","Warn: release artifact V2.4.0 not signed: https://api.github.com/repos/automvc/bee/releases/177333464","Warn: release artifact V2.1.8 not signed: https://api.github.com/repos/automvc/bee/releases/123828055","Warn: release artifact V1.11 not signed: https://api.github.com/repos/automvc/bee/releases/66182673","Warn: release artifact V1.9.8 not signed: https://api.github.com/repos/automvc/bee/releases/60846310","Warn: release artifact v2.5.2 does not have provenance: https://api.github.com/repos/automvc/bee/releases/237057375","Warn: release artifact V2.4.0 does not have provenance: https://api.github.com/repos/automvc/bee/releases/177333464","Warn: release artifact V2.1.8 does not have provenance: https://api.github.com/repos/automvc/bee/releases/123828055","Warn: release artifact V1.11 does not have provenance: https://api.github.com/repos/automvc/bee/releases/66182673","Warn: release artifact V1.9.8 does not have provenance: https://api.github.com/repos/automvc/bee/releases/60846310"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'","Warn: branch protection not enabled for branch '2.5.2'","Warn: branch protection not enabled for branch '1.9.8'","Warn: branch protection not enabled for branch '1.9.5'","Warn: branch protection not enabled for branch '1.8.99'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T01:54:06.204Z","repository_id":37677654,"created_at":"2025-08-17T01:54:06.205Z","updated_at":"2025-08-17T01:54:06.205Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-orm","dao","mongodb-orm","orm","sharding-jdbc"],"created_at":"2025-02-21T00:02:32.051Z","updated_at":"2026-01-14T03:18:43.314Z","avatar_url":"https://github.com/automvc.png","language":"Java","funding_links":[],"categories":["数据库开发"],"sub_categories":[],"readme":"\r\nBee\r\n=========\r\n**Easy for Stronger.**   \r\n**Bee** is an ORM framework.   \r\n**Bee** is an easy and high efficiency ORM framework.  \r\n**Coding Complexity is O(1),it means that Bee will do the Dao for you**.  \r\n**You don't need to write the Dao by yourself anymore**.Help you to focus more on the development of business logic.  \r\n**Good Feature:**  AI, Timesaving/Tasteful, Easy, Automatic (**AiTeaSoft Style**)   \r\n\r\n## **Good News:**  \r\nNewest version is:**Bee V2.5.2 LTS**(just 935k)  \r\n1.17.x LTS version:**1.17.25**  \r\n\r\nSharding target: It is mainly transparent to business development and coding, with only a little sharding config.  \r\n#### [Quick Start:Shardign better example](guide/Quick-start-Sharding.md) \r\n\r\n\r\n**Bee** see:  \r\nhttps://github.com/automvc/bee  \r\nbee-ext:  \r\nhttps://github.com/automvc/bee-ext  \r\nPython ORM Bee:\r\nhttps://github.com/automvc/BeePy  \r\n\r\n## [中文介绍](../../../bee/blob/master/README_CN.md)  \r\n[点击链接可查看中文介绍](../../../bee/blob/master/README_CN.md)  \r\n\r\n## Requirement  \r\n#### Bee jdk1.8+\r\n\r\n## Feature \u0026 Function: \r\n\r\n**Easy to use**:  \r\n* 1.Simple interface, convenient to use. The Suid interface provides four object-oriented methods corresponding to the SQL language's select, update, insert, and delete operations.  \r\n* 2.By using Bee, you no longer need to write separate DAO code. You can directly call Bee's API to perform operations on the database.  \r\n* 3.Convention-over-configuration: Javabean can no annotation, no xml.  \r\n* 4.Intelligent automatic filtering of null and empty string properties in entities eliminates the need for writing code to check for non-null values.  \r\n* 5.Easily implement partial field queries and native statement pagination.  \r\n* 6.Supports returning query results in JSON format; supports chaining.  \r\n* 7.Supports Sharding, both database and table Sharding; database-only Sharding; table-only Sharding; and read-write separation. This functionality is transparent to existing code and does not require additional coding.  \r\n* 8.Easily extendable with multiple database support (MySQL, MariaDB, Oracle, H2, SQLite, PostgreSQL, SQL Server, Access, Kingbase, Dameng, etc.), and theoretically supports any database supported by JDBC. Additionally, supports Android and Harmony.  \r\n* 9.Additional database pagination support for: MsAccess, Cubrid, HSQL, Derby, Firebird, etc.\r\n* 10.Multiple databases can be used simultaneously (e.g., MySQL, Oracle, SQL Server).  \r\n\r\n**Automatic, powerful**:  \r\n* 11.Dynamic/arbitrary combination of query conditions without the need to prepare DAO interfaces in advance. New query requirements can be handled without modifying or adding interfaces.  \r\n* 12.Supports transactions, using the same connection for multiple ORM operations, FOR UPDATE, batch processing, executing native SQL statements, and stored procedures.  \r\n* 13.Supports object-oriented complex queries, multi-table queries (no N+1 problem), and supports one-to-one, one-to-many, many-to-one, and many-to-many relationships. The result structure can differ based on whether the sub-table uses List;multi-table association update, insert, and delete(2.1.8).  \r\n* 14.MongoDB ORM and support for MongoDB Sharding.  \r\n* 15.Supports register, interceptor, multi-tenancy, and custom TypeHandlers for handling ResultSet results in queries. SetParaTypeConvert converts PreparedStatement parameter types.  \r\n* 16.Custom dynamic SQL tags, such as @in, @toIsNULL1, @toIsNULL2, \u003cif isNotNull\u003e, \u003cif isNotBlank\u003e. Allows dynamic SQL, converting lists into statements like in (1,2,3) without requiring foreach loops. Batch insertion also does not require foreach.  \r\n* 17.Complex query can be automatically parsed by the frontend and backend.  \r\n* 18.L1 cache, simple in concept and powerful in function; L1 cache can also be fine tuned like the JVM; Support updatable long-term cache list and update configuration table without restart. Inherently resistant to cache penetration. L2 cache extension support; Redis L2 cache support.  \r\n* 19.No third-party plugin dependencies; can be used with zero configuration.  \r\n* 20.High performance: close to the speed of JDBC; small file size: Bee V1.17.25 is only 520k, V2.5.2 is only 935k.  \r\n**Assist function**:  \r\n* 21. Provides a naturally simple solution for generating distributed primary keys: generates globally unique, monotonically increasing (within a worker ID) numeric IDs in a distributed environment.  \r\n* 22.Supports automatic generation of Javabean corresponding to tables(support Swagger), creating tables based on Javabean, and automatically generating backend Javaweb code based on templates. Can print executable SQL statements without placeholders for easy debugging. Supports generating SQL scripts in JSON format.  \r\n* 23.Supports reading Excel files and importing data into the database; simple operations. Supports generating database tables from Excel configurations.  \r\n* 24.Stream tool class StreamUtil;DateUtil date conversion, judge date format, calculate age.  \r\n* 25.Rich annotation support: PrimaryKey, Column, Datetime, Createtime, Updatetime; JustFetch, ReplaceInto (MySQL), Dict, DictI18n,GridFs, etc.  \r\n* 26.Use entity name _F (automatically generated) to reference entity field names, e.g., Users_F.name or in SuidRichExt interface using the format Users::getName.  \r\n\r\n## Newest main Function\r\n### **V2.5.2(2025·LTS)**  \r\n**2.5.2.1 New Year**  \r\n1. MongoDB update,delete,deleteById support for sharding  \r\n2. MongoDB modify sharding cache enhance  \r\n3. MongoDB index support for sharding  \r\n4. add ShardingFullOpTemplate  \r\n5. ObjSQLRich(SuidRich) add selectByTemplate for select  \r\n**2.5.2.2**  \r\n6. fixed bug for MongodbShardingDdlEngine  \r\n7. record and print sql execute time  \r\nbee.osql.showSqlExecuteTime=true  \r\nbee.osql.minSqlExecuteTime=0  \r\n8.use CQRS(Command Query Responsibility Segregation) operate database \r\n**2.5.2.6**  \r\n9. open some config in Honeyconfig as default  \r\nopenEntityCanExtend = true  \r\nshowSQL = true  \r\nshowShardingSQL = true  \r\nshowSqlExecuteTime = true  \r\nminSqlExecuteTime = 5;   //ms   \r\n10. column allow use keyword  \r\n#there is a switch for it, default is true  \r\nbee.osql.naming.allowKeyWordInColumn=true  \r\n#define for append if bee do not contain them  \r\nbee.osql.naming.sqlKeyWordInColumn  \r\n11. separate logger; initialize config independently first  \r\n12. BeeSimpleDataSourceBuilder is compatible with different style configurations  \r\n\r\n### **V2.4.2**  \r\n1. GenFiles support genFileViaStream  \r\n2. Genbean:update genFieldFile,toString, add method setUpperFieldNameInFieldFile \r\n3. update DoNotSetTabShadngValue tip message(Sharding insert need set the sharding value)  \r\n4. SuidRich selectById,deleteById support sharding  \r\n5. Condition support clone  \r\n6. fixed bug:  \r\nsharding select all(no paging)  \r\nsharding modify cache  \r\n\r\n## [Function Detail](../../../bee/blob/master/Changed_Log.md)  \r\n[click for:  Function Detail](../../../bee/blob/master/Changed_Log.md)  \r\n\r\n## Bee Support Database list:\t\r\n1.MySQL  \r\n2.Oracle  \r\n3.SQL Server  \r\n4.MariaDB  \r\n5.H2  \r\n6.SQLite  \r\n7.PostgreSQL  \r\n8.MS Access  \r\n9.Kingbase  \r\n10.DM  \r\n11.OceanBase  \r\n12.Cubrid,HSQL,Derby,Firebird  \r\n13.Other DB that support JDBC  \r\n\r\nNOSQL:  \r\n14.Mongodb  \r\n15.ElasticSearch  \r\n16.Cassandra  \r\n\r\nMobile environment (database): \r\n17.Android  \r\n18.Harmony  \r\n\r\n## ORM Compare\t\r\n### Compare in JDBC\t\r\n\r\n[ORM-Compare (More Detail)](../../../orm-compare)  \r\n\r\nTest Evn : Local windows.  \r\nDB: MySQL (Version 5.6.24).  \r\nTest point: Batch Insert;Paging Select; Transaction(update and select).  \r\n\r\n\u003cimg src=\"illustration/batch-insert-compare.png\"\u003e  \r\n\r\n\u003ctable cellspacing=\"0\" cellpadding=\"0\"\u003e\r\n  \u003ccol width=\"62\" /\u003e\r\n  \u003ccol width=\"69\" /\u003e\r\n  \u003ccol width=\"64\" /\u003e\r\n  \u003ccol width=\"69\" span=\"2\" /\u003e\r\n  \u003ccol width=\"96\" /\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd colspan=\"6\" height=\"19\" width=\"429\"\u003e\u003cdiv align=\"center\"\u003eBatch Insert(unit: ms)\u003c/div\u003e\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003e　\u003c/td\u003e\r\n    \u003ctd\u003e5k\u003c/td\u003e\r\n    \u003ctd\u003e1w\u003c/td\u003e\r\n    \u003ctd\u003e2w\u003c/td\u003e\r\n    \u003ctd\u003e5w\u003c/td\u003e\r\n    \u003ctd\u003e10w\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e529.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e458.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e550.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1315.67 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e4056.67 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eMyBatis\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1193\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e713\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1292.67 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1824.33 \u003c/td\u003e\r\n    \u003ctd\u003eException\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\r\n\u003ctable cellspacing=\"0\" cellpadding=\"0\"\u003e\r\n  \u003ccol width=\"62\" /\u003e\r\n  \u003ccol width=\"69\" /\u003e\r\n  \u003ccol width=\"64\" /\u003e\r\n  \u003ccol width=\"69\" span=\"2\" /\u003e\r\n  \u003ccol width=\"96\" /\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd colspan=\"6\" height=\"19\" width=\"429\"\u003e\u003cdiv align=\"center\"\u003ePaging Select(unit: ms)\u003c/div\u003e\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003e　\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e20\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e50\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e100\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e200\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e500\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e17.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e58.67 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e52.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e38.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e57.33 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eMyBatis\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e314.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e446.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1546.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e2294.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e6216.67 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\r\n\u003ctable cellspacing=\"0\" cellpadding=\"0\"\u003e\r\n  \u003ccol width=\"62\" /\u003e\r\n  \u003ccol width=\"69\" /\u003e\r\n  \u003ccol width=\"64\" /\u003e\r\n  \u003ccol width=\"69\" span=\"2\" /\u003e\r\n  \u003ccol width=\"96\" /\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd colspan=\"6\" height=\"19\" width=\"429\"\u003e\u003cdiv align=\"center\"\u003eTransaction(update and select) (unit: ms)\u003c/div\u003e\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003e　\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e20\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e50\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e100\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e200\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e500\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1089.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e70.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e84.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e161.33 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e31509.33 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eMyBatis\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e1144\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e35\u003c/td\u003e\r\n    \u003ctd\u003e79.67 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e146.00 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e32155.33 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n**Bee need files**   \r\norm\\compare\\bee\\service\\BeeOrdersService.java\t\r\n\r\n**MyBatis need files**  \r\norm\\compare\\mybatis\\service\\MybatisOrdersService.java  \r\norm\\compare\\mybatis\\dao\\OrdersDao.java  \r\norm\\compare\\mybatis\\dao\\OrdersMapper.java  \r\norm\\compare\\mybatis\\dao\\impl\\OrdersDaoImpl.java  \r\n\r\ncommon,Javabean and Service interface:  \r\nOrders.java  \r\nOrdersService.java  \r\n\r\n### Bee application in App Compare  \r\n\r\n**Performance comparison data of Bee application in app development**  \r\nOperate 10000 records, and the use time comparison is as follows.  \r\n\r\n\u003ctable cellpadding=\"0\" cellspacing=\"0\"\u003e\r\n  \u003ccol width=\"50\" /\u003e\r\n  \u003ccol width=\"90\" /\u003e\r\n  \u003ccol width=\"74\" /\u003e\r\n  \u003ccol width=\"76\" /\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\" colspan=\"4\" \u003e\u003cdiv align=\"center\"\u003eOperate 10000 records(unit: ms)\u003c/div\u003e\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\" \u003e　\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003einsert\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003equery\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003edelete\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003egreenDao(Android)\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e104666\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e600 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e47 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee(Android 8.1)\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e747\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e184\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e25 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee(HarmonyOS P40 Pro simulator)\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e339\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e143\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e2 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n\r\nQuick Start:\r\n=========\t\r\n## 1. Add Bee   \r\n#### 1.1 if it is a maven project,add the following dependency  \r\n\r\n```xml\r\n       \u003cdependency\u003e\r\n\t      \u003cgroupId\u003eorg.teasoft\u003c/groupId\u003e\r\n\t      \u003cartifactId\u003ebee-all\u003c/artifactId\u003e\r\n\t      \u003cversion\u003e2.5.2\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\t\t\r\n\t    \u003c!-- Mysql config.You need change it to the real database config. --\u003e\r\n\t\t\u003cdependency\u003e\r\n\t\t\t\u003cgroupId\u003emysql\u003c/groupId\u003e\r\n\t\t\t\u003cartifactId\u003emysql-connector-java\u003c/artifactId\u003e\r\n\t\t\t\u003cversion\u003e5.1.47\u003c/version\u003e\r\n\t\t\t\u003cscope\u003eruntime\u003c/scope\u003e\r\n\t\t\u003c/dependency\u003e\r\n```\r\n\r\nGradle\r\n\r\n```xml\r\nimplementation group: 'org.teasoft', name: 'bee-all', version: '2.5.2'\r\n//Gradle(Short)\r\nimplementation 'org.teasoft:bee-all:2.5.2'\r\n```\r\n\r\n#### 1.2  Of course, can download the jar file directly  \r\n\r\n## 2. Create the database and the table  \r\n\r\neg:  \r\nCreate one database,default name is bee.  \r\nCreate the tables and init the data by run the [init-data(user-orders)-mysql.sql](../../../bee-exam/blob/master/src/main/resources/init-data(user-orders)-mysql.sql) file(it is mysql sql script).  \r\n\r\n## 3. Update the database configuration in bee.properties if need  \r\nIf no the bee.properties file, you can create it by yourself.\r\n\r\n\\#bee.databaseName=MySQL  \r\nbee.db.dbName=MySQL  \r\nbee.db.driverName = com.mysql.jdbc.Driver  \r\n\\#bee.db.url =jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8  \r\nbee.db.url =jdbc:mysql://127.0.0.1:3306/bee?characterEncoding=UTF-8\u0026useSSL=false  \r\nbee.db.username = root  \r\nbee.db.password =  \r\n\r\n\\#print log  \r\nbee.osql.showSQL=true  \r\nbee.osql.showSql.showType=true  \r\nbee.osql.showSql.showExecutableSql=true  \r\n\\# since 2.1.7 sqlFormat=true,will format the executable sql\r\nbee.osql.showSql.sqlFormat=false\r\n\r\n\\#log4j\u003eslf4j\u003elog4j2\u003eandroidLog\u003eharmonyLog\u003esystemLogger\u003efileLogger\u003enoLogging\u003ejdkLog\u003ecommonsLog  \r\nbee.osql.loggerType=systemLogger  \r\n\r\n## 4. The Javabean Orders reference as below:  \r\n[Orders(Javabean)](../../../bee-exam/blob/master/src/main/java/org/teasoft/exam/bee/osql/entity/Orders.java)  \r\n[Auto Genernate Javabean](../../../bee-exam/blob/master/src/main/java/org/teasoft/exam/bee/osql/autogen/GenBeanExam.java)  \r\n\r\n## 5. Run the following java code  \r\n\r\n```java\r\n\t\t\r\nimport java.math.BigDecimal;\r\nimport java.util.List;\r\n\r\nimport org.teasoft.bee.osql.BeeException;\r\nimport org.teasoft.bee.osql.Suid;\r\nimport org.teasoft.honey.osql.core.BeeFactoryHelper;\r\nimport org.teasoft.honey.osql.core.Logger;\r\n\r\n/**\r\n * @author Kingstar\r\n * @since 1.0\r\n */\r\npublic class SuidExamEN {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\ttry {\r\n\t\t\tSuid suid = BeeFactoryHelper.getSuid();\r\n\r\n\t\t\tOrders orders1 = new Orders();//need gen the Javabean\r\n\t\t\torders1.setId(100001L);\r\n\t\t\torders1.setName(\"Bee(ORM Framework)\");\r\n\r\n\t\t\tList\u003cOrders\u003e list1 = suid.select(orders1); // 1. select\r\n\t\t\tfor (int i = 0; i \u003c list1.size(); i++) {\r\n\t\t\t\tLogger.info(list1.get(i).toString());\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//Condition condition=BF.getCondition(); // The SuidRich interface has many methods with the Condition parameter\r\n               //condition.op(Orders_F.userid, Op.ge, 0); // userid\u003e=0\r\n              //Op supports: =,\u003e,\u003c,\u003e=,\u003c=,!=, Like, in, not in, etc\r\n\r\n\t\t\torders1.setName(\"Bee(ORM Framework)\");\r\n\t\t\tint updateNum = suid.update(orders1); //2. update\r\n\t\t\tLogger.info(\"update record:\" + updateNum);\r\n\r\n\t\t\tOrders orders2 = new Orders();\r\n\t\t\torders2.setUserid(\"bee\");\r\n\t\t\torders2.setName(\"Bee(ORM Framework)\");\r\n\t\t\torders2.setTotal(new BigDecimal(\"91.99\"));\r\n\t\t\torders2.setRemark(\"\"); // empty String test\r\n\r\n\t\t\tint insertNum = suid.insert(orders2); // 3. insert\r\n\t\t\tLogger.info(\"insert record:\" + insertNum);\r\n\r\n\t\t\tint deleteNum = suid.delete(orders2); // 4. delete\r\n\t\t\tLogger.info(\"delete record:\" + deleteNum);\r\n\t\t} catch (BeeException e) {\r\n\t\t\tLogger.error(\"In SuidExamEN (BeeException):\" + e.getMessage());\r\n\t\t\t//e.printStackTrace();\r\n\t\t} catch (Exception e) {\r\n\t\t\tLogger.error(\"In SuidExamEN (Exception):\" + e.getMessage());\r\n\t\t\t//e.printStackTrace();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n// notice: this is just a simple sample. Bee suport transaction,paging,complicate select,slect json,and so on.\t\r\n\r\n```\r\n\r\n\r\n## [Quick Start : Bee + Harmony](guide/Quick-start-for-Harmony.md) \r\n\r\n## [Quick Start : Bee + Android](guide/Quick-start-for-Android.md) \r\n\r\n## Use Bee in Android Environment    \r\n### 1.bee.properties    \r\n\r\n```properties\r\nbee.db.isAndroid=true\r\nbee.db.androidDbName=account.db\r\nbee.db.androidDbVersion=1\r\nbee.osql.loggerType=androidLog\r\n#turn on query result field type conversion, and more types will be supported\r\nbee.osql.openFieldTypeHandler=true\r\n\r\n#If you are allowed to delete and update the whole table, you need to remove the comments\r\n#bee.osql.notDeleteWholeRecords=false\r\n#bee.osql.notUpdateWholeRecords=false\r\n```\r\n\r\n### 2.implement tables that need to be created and updated when app installation and upgrade\t\r\n\r\n```java\r\npublic class YourAppCreateAndUpgrade implements CreateAndUpgrade{\r\n\t@Override\r\n\tpublic void onCreate() {\r\n//\t\tYou can create tables in an object-oriented way\r\n\t\tDdl.createTable(new Orders(), false);\r\n\t\tDdl.createTable(new TestUser(), false);\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void onUpgrade(int oldVersion, int newVersion) {\r\n\t\tif(newVersion==2) {\r\n\t\t\tDdl.createTable(new LeafAlloc(), true);\r\n\t\t\tLog.i(\"onUpgrade\", \"你在没有卸载的情况下，在线更新到版本:\"+newVersion);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n```\r\n### 3.Register YourAppCreateAndUpgrade and Android context to Bee\t\r\nConfigure android:name to BeeApplication in AndroidManifest.xml file.\t\r\n\r\n```java\r\npackage com.aiteasoft.util;\r\n\r\nimport org.teasoft.bee.android.CreateAndUpgradeRegistry;\r\nimport org.teasoft.beex.android.ApplicationRegistry;\r\n\r\npublic class BeeApplication extends Application {\r\n    private static Context context;\r\n    @Override\r\n    public void onCreate() {\r\n       ApplicationRegistry.register(this);//注册上下文\r\n       CreateAndUpgradeRegistry.register(YourAppCreateAndUpgrade.class);\r\n    }\r\n }\r\n \r\n// 并在AndroidManifest.xml,配置android:name为BeeApplication \r\n \u003capplication\r\n        android:icon=\"@drawable/appicon\"\r\n        android:label=\"@string/app_name\"\r\n         android:name=\"com.aiteasoft.util.BeeApplication\"\r\n       \u003e\r\n```\r\n\r\n### 4.Java operation SQLite database is similar to JavaWeb\t\r\n\r\n```java\r\nSuid suid=BF.getSuid();\r\nList\u003cOrders\u003e list = suid.select(new Orders()); \r\n```\r\n\r\n### 5.Bee application in App Compare\t\r\n**Performance comparison data of Bee application in app development**  \r\nOperate 10000 records, and the use time comparison is as follows.  \r\n\r\n\u003ctable cellpadding=\"0\" cellspacing=\"0\"\u003e\r\n  \u003ccol width=\"50\" /\u003e\r\n  \u003ccol width=\"90\" /\u003e\r\n  \u003ccol width=\"74\" /\u003e\r\n  \u003ccol width=\"76\" /\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\" colspan=\"4\" \u003e\u003cdiv align=\"center\"\u003eOperate 10000 records(unit: ms)\u003c/div\u003e\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\" \u003e　\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003einsert\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003equery\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003edelete\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003egreenDao(Android)\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e104666\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e600 \u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e47 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee(Android 8.1)\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e747\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e184\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e25 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr height=\"19\"\u003e\r\n    \u003ctd height=\"19\"\u003eBee(HarmonyOS P40 Pro simulator)\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e339\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e143\u003c/td\u003e\r\n    \u003ctd align=\"right\"\u003e2 \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n\r\n### [More example/test case](../../../bee-exam/)\t\r\n\r\n### [Bee+Spring-boot Demo](../../../bee-starter-demo/)\t\r\n\r\n## Bee Architecture  \r\n**V2.1**  \r\n\u003cimg src=\"illustration/Bee-architecture-EN-V2.0.png\"  width=\"520\" height=\"640\"\u003e  \r\n\r\n## Bee Common Interface  \r\n\u003cimg src=\"illustration/common-interface-2.5.2_en.png\"\u003e  \r\n\r\nRapid application development:\r\n=========\t\r\n**Let Java more quicker programming than php and Rails.**  \r\n\r\n**Faster development of new combinations for Java Web：**  \r\n[Bee+Spring+SpringMVC](../../../../aiteasoft/bee-spring-springmvc)  \r\n\r\n**Faster development of new combinations for Spring Cloud microservices：**  \r\n[Bee + Spring Boot](../../../bee-springboot)  \r\n\r\n## KmCoding\r\n[Rapid Application Code Generation Platform](http://www.kmcoding.com)--AiTea Soft made in China!  \r\n\r\n[Generate code automatically](../../../gencode)  \r\n\r\n...  \r\n\r\nApp Demo:\r\n=========\t\r\n### **HarmonyOS application Demo with ORM Bee：**  \r\n[Bee + HarmonyOS](../../../../aiteasoft/HarmonyOS-ORM-Bee-Demo)  \r\n\r\n[Bee + Android](guide/Quick-start-for-Android.md)  \r\n\r\nOther Document:\r\n=========\t\r\n### API-DOC  \r\nAPI-V1.17.x(Newest) SourceCode contain bee-1.17 CN \u0026 EN API,bee-1.17 CN SourceCode  \r\nAPI-V2.x(Newest) bee-2.5.2 EN API  \r\n\r\n[wiki Document](../../../bee/wikis)  \r\n\r\n[CSDN: ORM Bee Document](https://blog.csdn.net/abckingaa/article/details/121664398)\r\n\r\nContact \u0026 Welcome:\r\n=========\t\r\n#### Author's email:    honeysoft@126.com  \r\n#### If you have any problem on bee, please let me know kindly! Thank you, so much!  \r\n#### ORM QQ Group: 992650213     WeChat:AiTeaSoft  \r\n#### At the same time, welcome you to join Bee team create a better future. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomvc%2Fbee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautomvc%2Fbee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomvc%2Fbee/lists"}