2025-01-24
|
ZH
N+1查询问题是指在数据库查询中,对每个关联对象执行一次查询,导致总查询次数为N+1次。这种情况通常出现在一对多或多对多的关系中,例如,一个用户可以有多个订单,查询所有用户及其订单时,首先查询所有用户(1次查询),然后对每个用户执行一次查询以获取其订单(N次查询),总共执行N+1次查询 可
2025-01-13
|
ZH
首先anyline跟这些工具不是一个层面的东西。 anyline不是一个可以直接执行的成品工具。而是这些工具的更下一层的支持。 你如果要自己开发或改造一个迁移工具,而不是找一个现成的工具,这种情况下才用得上。你要自己控制流程自己写UI anyline能为你作的是提供操作数据库对象的方法,屏蔽不同
2025-01-10
|
ZH
在实际开发过程中,经常有需要修改单个属性的情况,如是修改数量这一列,在提交参数时不可能把整行数据完整提交,这时其他列就会没有数据,但其他列明显不应该参与更新。 如果是DataRow也可以把不必要的key删除,但用用实体类操作时就不那么方便了,所以默认空值不参与更新。 如果需要更新的话可以设置Con
2025-01-03
|
ZH
在8.7.x及之后的版本中,实际上是不切换数据源的, 而是有多个数据源同时有效,需要操作哪个数据源,就通过ServiceProxy.service()返回哪个数据源相关的service 也就是说有多组service-datasource 无论怎么切换都不影响其他数据源的状态(如事务状态等)
2024-07-26
|
ZH
默认情况下anyline中的一个数据源 只会绑定一个DriverAdapter(用来生成一类数据库方言) 但有第三方数据源会通过DynamicDataSource实现数据源切换,这样就会造成一个数据源对应多种数据库如(mysql, oracle) 而adapter只会检测一次,这样就会造成
2024-12-27
|
ZH
anyline是什么,简单来说是一个数据库操作工具,可以对比ORM来了解anyline 相对于ORM,anyline更注重的是动态、运行时、元数据、结果集操作。所以有时也称D-ORM(动态ORM) 动态就是非静态,最常见的如动态数据源,这个数据源地址甚至数据库类型在编码环节都不可知,
2024-12-05
|
ZH
在操作数据时先要确定数据源,根据数据源名称获取到就的service,如 AnylineService service = ServiceProxy.service(“fi”)获取针对fi数据源的service [读取数据的过程] serivce(接收参数) > dao(统一Run
2024-12-05
|
ZH
这一步通常是在系统启动时读取配置文件自动动执行 也可以在运行过程中动态注册 注册数据源时 根据连接、帐号、密码等参数调用DataSourceHolder.reg()方法 reg方法内根据数据源参数特征到holder池中匹配到相应的Holder Holder.reg()执行过程 1.先
2024-12-05
|
ZH
DataSourceHolder 主要用来创建数据源 Adpater 每种数据源对应一个Adapter,主要用来针对不同的数据库生成当前数据库可执行的命令,屏蔽不同数据库的命令差异及数据类型的兼容。实现以相同的语法操作不同数据库,读写表结构、索引等元数据表结
2024-12-04
|
ZH
根据支持的协议每类数据源会有对应的DataSourceHolder,Actuator 每种数据源会有对应的Adapter,如OracleAdapter,MySQLAdapter 每个holder,adapter上会有适应的规则特征、一般是根据驱动类、连接协议等如 jdbc:mysql jdbc:po