# store-orm **Repository Path**: gong-jingyu/store-orm ## Basic Information - **Project Name**: store-orm - **Description**: 这是一个关于数据存储的ORM中间件,包含MySQL、MongoDB,未来会支持更多的数据库。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-22 - **Last Updated**: 2022-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # store-orm 数据库中间件 ## 使用攻略 ``` git clone https://gitee.com/gong-jingyu/store-orm.git 或 git clone git@gitee.com:gong-jingyu/store-orm.git cd store-orm mvn install -Dmaven.test.skip=true 项目中引入 com.store.orm store-orm 1.0-SNAPSHOT ``` ### 配置文件 ``` 请参考:src/test/resources ``` ### mysql ```java // 获取 properties 配置文件,通过 UnPooledConnection 获得连接 ParseProperties parse = new ParseProperties(); File file = Paths.get("src/test/resources/mysql.properties").toFile(); MySQLConfig mySQL = parse.parseMySQL(file); Connection connection = new UnPooledConnection().get(mySQL); // 生成一个CRUD操作对象 SelectSingle select = new SelectSingle(); // 设置连接 select.setConnection(connection); // 操作 select.select(new Pupil(), "id", "name").forEach(System.out::println); // 其他操作和它一样, 包括: Delete、Insert、SelectMulti、SelectSingle、Update ``` ### mongo ``` 获取 MongoDatabase ParseProperties pp = new ParseProperties(); MongoConfig mongo = pp.parseMongo(new File("src/test/resources/mongo.properties")); PooledConnection connection = new PooledConnection(mongo); MongoDatabase mongoDatabase = connection.get(); (1) 具体的操作: MongoInsert, MongoUpdate, MongoSelect, MongoDelete MongoDelete mongoDelete = new MongoDelete(mongoDatabase); (2) 使用MongoFactory MongoFactory factory = new MongoFactory(mongoDatabase); Delete = factory.delete(); 获取其他的操作类似 ``` ## 工具类模块 ``` package com.store.orm.util; Class: FieldUtil: 字段工具类,主要是为了解决MySQL数据库表和Java实体类字段对应问题 JsonUtil: JSON 工具类 StringUtil: 字符串实用工具类 ListUtil: 提供一个链式调用 add 方法的工具类 MapUtil: 提供一个链式调用 put 方法的工具类 ``` ## 通用类模块 ### common ``` package com.store.orm.common; Class: Constants: 常量类,项目中的所有常量,都放在此类中 KeyWord: 关键字类,包含了 MySQL、Java和键盘常用关键字 ``` ### io ``` package com.store.orm.io; Class: ParseJson: JSON 配置文件解析类 ParseProperties: Properties 配置文件解析类 ``` ### config ``` package com.store.orm.config; Class: MongoConfig: Mongo 配置类 MySQLConfig: MySQL 配置解析对象 Pool: 连接池对象 ``` ## MongoDB模块 ### annotation ``` package com.store.orm.mongo.annotation; Annotation: Documents: 声明属于哪个集合 ``` ### crud ``` package com.store.orm.mongo.curd; Class: CRUDUtil: 提供通用方法 Delete: 删除模块 Insert: 新增模块 Placement: 连接方式,包括 AND、OR Select: 查询模块 Update: 修改模块 ``` ### datasource ``` package com.store.orm.mongo.datasource; Class: PooledConn: 使用连接池来获取一个连接 UnPooledConn: 获取一个连接 ``` ## MySQL模块 ### annotation ``` package com.store.orm.mysql.annotation; Class: Default: 字段默认值 Id: 标记为是否是主键 NotNull: 标记为 不能为空 On: 两表联查是使用,放在关联字段上 TableField: 对字段做修饰,可以改变正向工程中字段的名称和类型 TableName: 实体类生成数据库表的表名字 Unique: 标记为 唯一值 ``` ### cache ### crud ``` package com.store.orm.mysql.crud.filter; Class: Filtration: 过滤条件 Operator: 操作符,记录了一些常用的关于 MySQL 的操作符 Placement: MySQL 多表连接方式连接方式 package com.store.orm.mysql.crud; Class: CRUDUtil: 提供 Insert, Delete, Update, Select 都能用到的方法 Delete: 删除组件 Insert: 新增组件 SelectMulti: 多表查询组件 SelectSingle: 单表查询组件 Update: 修改组件 ``` ### datasource ``` package com.store.orm.mysql.datasource; Class: PooledConnection: 连接池获取数据 UnPooledConnection: 获取数据库连接 ``` ### generator ``` package com.store.orm.mysql.generator; Class: Pojo2Table: 实体类转换为数据库表格 Table2Pojo: 数据库表格转换为实体类 ``` ### type ``` package com.store.orm.mysql.type; Class: TypeHandler: 数据库类型与Java类型转换 ``` ### reflection