# myoql
**Repository Path**: imnewsea/myoql
## Basic Information
- **Project Name**: myoql
- **Description**: 像写SQL一样写ORM,链式方法调用,结合Lambda,枚举。灵活适应各种情况。
使用不同种类数据库的实体生成器,支持:Mysql,MongoDb,Excel,一致性的调用方法。
对数据进行分组,方便管理。
- **Primary Language**: Kotlin
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 9
- **Forks**: 2
- **Created**: 2019-11-22
- **Last Updated**: 2026-04-24
## Categories & Tags
**Categories**: database-dev
**Tags**: None
## README
# 说明
nbcp: 内部产品 的拼音首字母。
# 发布
- 修改 /pom.xml version
- python sync_version.py
- 本地安装: python install_jar.py
- 安装到远程仓库:python publish ${version}
- 本发安装单个Jar包: python install_jar.py -f ktbase
> 设置版本: mvn versions:set -DnewVersion=1.0.6-SNAPSHOT
> 发布到私服:mvn clean deploy -Dmaven.test.skip=true -e -U -am -P nancal-dev -pl ktweb
> 发布到私服:mvn clean deploy -Dmaven.test.skip=true -e -U -am -P nancal-snapshots -pl ktweb
> mvn clean package -Dmaven.test.skip=true -P release
> mvn clean install -Dmaven.test.skip=true -P release
> mvn clean deploy -Dmaven.test.skip=true -P release
pom.xml 中 profiles.release.profile.id == profiles.release.distributionManagement.repository.id == maven setting.xml
servers.server.id
### 注意
需要集成 kotlin-maven-plugin
```
org.jetbrains.kotlin
kotlin-maven-plugin
${kotlin.version}
compile
validate
compile
test-compile
test-compile
test-compile
1.8
```
`validate` 表示在 validate 阶段编译 kotlin
让 `kotlin-maven-plugin` 执行编译的时机, 早于 默认的 `maven-compiler-plugin`
`maven-compiler-plugin` 也可以编译 java . 所以 集成了 `maven-compiler-plugin` 后不必集成 `maven-compiler-plugin`
## 发布到私服
maven的 setting.xml 增加
servers 节
```
nancal-dev
admin
xxx
nancal-snapshots
admin
xxx
```
profile 节
```
nancal-snapshots
nancal-snapshots
http://nexus.cloudnk.cn/repository/maven-snapshots/
```
本地打包:python install_jar.py
发布到私服:mvn clean deploy -Dmaven.test.skip=true -P nancal-dev
## 版本
Major.Minor.Fix
稳定版本=Major.Minor.Max
## 第三方引入 ktbase
安装 ktbase 包
```
cd lib
mvn install:install-file -DgroupId=cn.dev8 -DartifactId=kotlin-boot-parent -Dversion=1.1.5-SNAPSHOT -Dpackaging=pom -Dfile=kotlin-boot-parent-1.1.5-SNAPSHOT.pom
mvn install:install-file -DgroupId=cn.dev8 -DartifactId=ktbase -Dversion=1.1.5-SNAPSHOT -Dfile=ktbase-1.1.5-SNAPSHOT.jar -DpomFile=ktbase-1.1.5-SNAPSHOT.pom
```
# 使用包需要配置的变量
- app.upload.host 表示上传文件的文件服务 Host
- app.filter.allow-origins 表示跨域允许的域名。
- app.filter.ignore-log-urls 表示哪些URL在请求过程中添加 UsingScope.NoInfo 作用域。
- app.filter.headers 表示跨域允许的 headers
- app.filter.html-path 表示可以访问的静态内容,不做任何模板解析。
- app.dataCenter-id 表示服务所在的数据中心Id,生成雪花算法时使用。
- app.machine-id 表示数据中心下属的服务器Id,生成雪花算法时使用。
# nginx 代理:
```
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
```
> 开发环境
- JDK 1.8
- Intellij IDEA
- Kotlin
- Maven
> Intellij IDEA 插件
Kotlin
> Intellij Idea环境配置:
python build-base.py
mvn-jar.cmd -f corp
mvn-jar.cmd -f admin
## 发版:
python scpshop.py
或
python scpadmin.py
# 项目特点
可以 java + kotlin , 推荐 kotlin 更简单。
mysql orm , 有实体生成器。支持枚举。
mongo orm ,有实体生成器。支持枚举。
redis 封装。
mq 封装。
mvc 封装,定义参数更灵活,action 参数分别从 url querystring, request body, header , cookie 中取。
集成 swagger-ui
集成日志
封装Excel读取,导出
封装文件上传
封装 登录校验的请求 OpenAction
MySql 主从数据库读取
Mongo 多数据库数据源
# 教程
参见: doc 文件夹下相应部分。