8.7.2后分离了多个环境(Spring/Solon/Vertx)比之前的版本多一个依赖
***具体参考***[【8.7.2更新】](http://doc.anyline.org/aa/2f_3951) ***详细说明请参考:*** [【官网】](http://doc.anyline.org/)
开发测试环境请使用[【8.7.2-20240423】](http://doc.anyline.org/aa/aa_3702)版本 语法测试请参考[【各数据库模拟环境】](http://run.anyline.org/)
发版务必到[【中央库】](https://mvnrepository.com/artifact/org.anyline/anyline-core)找一个正式版本,不要把SNAPSHOT版本发到生产环境
关于多数据源,请先阅读
[【三种方式注册数据源】](http://doc.anyline.org/aa/a9_3451)
[【三种方式切换数据源】](http://doc.anyline.org/aa/64_3449)
[【多数据源事务控制】](http://doc.anyline.org/ss/23_1189)
低代码平台、数据中台等场景需要生成SQL/操作元数据参考
[【JDBCAdapter】](http://doc.anyline.org/ss/01_1193)
[【SQL及日志】](http://doc.anyline.org/aa/70_3793)
[【service.metadata】](http://doc.anyline.org/ss/22_1174)
[【SQL.metadata】](http://doc.anyline.org/aa/c1_3847)
***快速开始请参考示例源码(各种各样最简单的hello world):***
[https://gitee.com/anyline/anyline-simple](https://gitee.com/anyline/anyline-simple)
***一个字都不想看,就想直接启动项目的下载这个源码:***
[https://gitee.com/anyline/anyline-simple-clear](https://gitee.com/anyline/anyline-simple-clear)
有问题请不要自行百度,因为百度收录的内容有可能过期或版本不一致, 有问题请联系
| [<img src="http://cdn.anyline.org/img/user/alq.png" width="150">](http://shang.qq.com/wpa/qunwpa?idkey=279fe968c371670fa9791a9ff8686f86dbac0b5edba8021a660b313e2dd863ad) | <img src="http://cdn.anyline.org/img/user/alvg.png" width="150"> | <img src="http://cdn.anyline.org/img/user/alv.png" width="150"> |
|:-------:|:--------:|:---------------------------------------------------------------:|
| QQ群(86020680) | 微信群 | 过期或满员联系管理员 |
## 简介
AnyLine的核心是一个面向运行时的D-ORM(动态对象关系映射)
主要用来读写元数据、动态注册切换数据源、对比数据库结构差异、生成动态SQL、复杂的结果集操作
适配各种关系型与非关系型数据库(及各种国产小众数据库)
常用于动态结构场景的底层支持,作为SQL解析引擎或适配器出现
如:数据中台、可视化、低代码、SAAS、自定义表单、异构数据库迁移同步、 物联网车联网数据处理、
条件/数据结构、 爬虫数据解析等。
参考【[适用场景](http://doc.anyline.org/ss/ed_14)】
##### 数据源注册及切换
注意这里的数据源并不是主从关系,而是多个完全无关的数据源。
```java
DataSource ds_sso = new DruidDataSource();
ds_sso.setUrl("jdbc:mysql://localhost:3306/sso");
ds_sso.setDriverClassName("com.mysql.cj.jdbc.Driver");
...
DataSourceHolder.reg("ds_sso", ds_sso);
或
DataSourceHolder.reg("ds_sso", pool, driver, url, user, password);
DataSourceHolder.reg("ds_sso", Map<String, Object> params); //对应连接池的属性k-v
//查询ds_sso数据源的SSO_USER表
DataSet set = ServiceProxy.service("ds_sso").querys("SSO_USER");
```
来自静态配置文件数据源(如果是spring环境可以按spring格式)
```properties
#默认数据源
anyline.datasource.type=com.zaxxer.hikari.HikariDataSource
anyline.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
anyline.datasource.url=jdbc:mysql://localhost:33306/simple
anyline.datasource.user-name=root
...更多参数
#其他数据源
anyline.datasource-list=crm,erp,sso,mg
anyline.datasource.crm.driver-class-name=com.mysql.cj.jdbc.Driver
anyline.datasource.crm.url=jdbc:mysql://localhost:33306/simple_crm
anyline.datasource.crm.username=root
anyline.datasource.erp.driver-class-name=com.mysql.cj.jdbc.Driver
anyline.datasource.erp.url=jdbc:mysql://localhost:33306/simple_erp
anyline.datasource.erp.username=root
```
DML
```java
如果是web环境可以
service.querys("SSO_USER",
condition(true, "NAME:%name%", "TYPE:[type]", "[CODES]:code"));
//true表示需要分页,没有传参籹值的条件默认忽略
//生成SQL:
SELECT *
FROM SSO_USER
WHERE 1=1
AND NAME LIKE '%?%'
AND TYPE IN(?,?,?)
AND FIND_IN_SET(?, CODES)
LIMIT 5,10 //根据具体数据库类型
//用户自定义查询条件,低代码等场景一般需要更复杂的查询条件
ConfigStore confis;
service.query("SSO_USER", configs);
ConfigStore提供了所有的SQL操作
//多表、批量提交、自定义SQL以及解析XML定义的SQL参数示例代码和说明
```
读写元数据
```java
@Autowired("anyline.service")
AnylineService service;
//查询默认数据源的SSO_USER表结构
Table table = serivce.metadata().table("SSO_USER");
LinkedHashMap<String, Column> columns = table.getColumns(); //表中的列
LinkedHashMap<String, Constraint> constraints = table.getConstraints(); //表中上约束
List<String> ddls = table.getDdls(); //表的创建SQL
//删除表 重新创建
service.ddl().drop(table);
table = new Table("SSO_USER");
//这里的数据类型随便写,不用管是int8还是bigint,执行时会转换成正确的类型
table.addColumn("ID", "BIGINT").autoIncrement(true).setPrimary(true).setComment("主键");
table.addColumn("CODE", "VARCHAR(20)").setComment("编号");
table.addColumn("NAME", "VARCHAR(20)").setComment("姓名");
table.addColumn("AGE", "INT").setComment("年龄");
service.ddl().create(table);
或者service.ddl().save(table); 执行时会区分出来哪些是列需要add哪些列需要alter
```
事务
```java
//因为方法可以有随时切换多次数据源,所以注解已经捕捉不到当前数据源了
//更多事务参数通过TransactionDefine参数
TransactionState state = TransactionProxy.start("ds_sso");
//操作数据
TransactionProxy.commit(state);
TransactionProxy.rollback(state);
```
### 已经有ORM了 为什么还要有AnyLine, 与ORM有什么区别
- ***面向场景不同***
anyline主要面向动态场景,就是运行时随时可变的场景。
如我们常用的动态数据源,不是在部署时可以固定在配置文件中,
而是可能在不确定的时间,由不确定的用户提供的不确定数据源。
表结构等元数据也可能随着着用户或数据源的不同而随时变化。
- ***针对产品不同***
anyline一般不会直接用来开发一个面向终端用户的产品(如ERP、CRM等),
而是要开发一个中间产品(如低代码平台),让用户通过中间产品来生成一个最终产品。
再比如用anyline开发一个自定义查询分析工具,让用户通过这个工具根据业务需求生成动态报表。
anyline不是要提供一个可二次开发的半成品船,而是可以用来造船的动态船坞。
- ***操作对象不同***
anyline主要操作元数据,因为在项目开发之初,可能就没有一个如ERP/CRM之类的明确的产品,
当然也就没有订单、客户之类的具体对象及属性,所以也没什么具体数据可操作。
- ***面向用户(开发设计人员)不同***
anyline要面向的不是开船的人,而是造船的人,而不是使用工具的人,而是设计工具的人。
anyline的大部分代码与灵感也是来自这部分用户的日常实践。
- ***所以对用户(开发设计人员)要求不同***
一个ORM用户用了许多年的连接池,他可以只知道配置哪几个默认参数,也能正常开展工作。
但anyline的用户不行,他要求这个团队中至少有一个人要明白其所以然。
### 实际操作中与ORM最明显的区别是
- ***摒弃了各种繁琐呆板的实体类以及相关的配置文件***
让数据库操作更简单,不要一动就是一整套的service/dao/mapping/VOPODTO有用没用
没有合适的资源?快使用搜索试试~ 我知道了~
兼容spring.solon.vertx生态的D-ORM,兼容各种小众国产数据库.zip
共803个文件
java:591个
xml:100个
imports:52个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 168 浏览量
2024-04-29
12:12:24
上传
评论
收藏 2.56MB ZIP 举报
温馨提示
数据库课程设计 1.概述 学生管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生管理系统得到了更大的发展空间,通过对学生管理系统的开发,可以提高校务人员的工作效率。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学校部门中有着相当庞大的数据内容,而这些数据只是作为单纯数据摆放在电脑里,并没有真正使这些数据起到更大的作用。大量数据的手工操作也会是数据操作错误增加,而且还使得相关的工作更加冗长、繁锁,为了使这些数据为使用者起到更多的作用,为管理人员提供依据与分析,建立起了自己的数据库系统,由计算机管理代替手工操作,进行收集、管理业务数据,从而提高操作人员的工作效率。 2.需求分析 2.1功能需求 2.1.1对于教职工来说 在信息方面,需要对学生的信息能够了解,能够方便以后的课程教学中可以对自己进行改进。 在处理方面,当学生的信息出错时,老师能对信息进行修改。比如学生团支部更改、学生有转校、转系、转专业等,老师可以根据实际情况进行更新。需要的操作是修改、删除、增加。老师能够更改课程名、
资源推荐
资源详情
资源评论
收起资源包目录
兼容spring.solon.vertx生态的D-ORM,兼容各种小众国产数据库.zip (803个子文件)
spring.factories 1KB
spring.factories 360B
spring.factories 345B
spring.factories 337B
spring.factories 285B
spring.factories 197B
spring.factories 176B
spring.factories 151B
spring.factories 113B
spring.factories 113B
spring.factories 113B
spring.factories 111B
spring.factories 111B
spring.factories 111B
spring.factories 111B
spring.factories 111B
spring.factories 111B
spring.factories 110B
spring.factories 110B
spring.factories 109B
spring.factories 109B
spring.factories 109B
spring.factories 107B
spring.factories 107B
spring.factories 107B
spring.factories 107B
spring.factories 105B
spring.factories 105B
spring.factories 105B
spring.factories 105B
spring.factories 105B
spring.factories 105B
spring.factories 105B
spring.factories 105B
spring.factories 103B
spring.factories 103B
spring.factories 103B
spring.factories 103B
spring.factories 103B
spring.factories 103B
spring.factories 103B
spring.factories 103B
spring.factories 102B
spring.factories 101B
spring.factories 101B
spring.factories 99B
spring.factories 99B
spring.factories 97B
spring.factories 97B
package.html 5KB
package.html 270B
package.html 266B
package.html 250B
package.html 241B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 1KB
org.springframework.boot.autoconfigure.AutoConfiguration.imports 289B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 269B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 264B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 209B
bean.imports 169B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 129B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 109B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 87B
bean.imports 78B
bean.imports 68B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 50B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 50B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 48B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 48B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 48B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 48B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 48B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 47B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 46B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 46B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 46B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 46B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 46B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 45B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 44B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 44B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 44B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 44B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 42B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 40B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 39B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 38B
共 803 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
野生的狒狒
- 粉丝: 2475
- 资源: 2142
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功