-
anyline跟一些数据迁移工具有什么区别
首先anyline跟这些工具不是一个层面的东西。 anyline不是一个可以直接执行的成品工具。而是这些工具的更下一层的支持。 你如果要自己开发或改造一个迁移工具,而不是找一个现成的工具,这种情况下才用得上。你要自己控制流程自己写UI anyline能为你作的是提供操作数据库对象的方法,屏蔽不同 -
为什么空值默认不参与insert/update
在实际开发过程中,经常有需要修改单个属性的情况,如是修改数量这一列,在提交参数时不可能把整行数据完整提交,这时其他列就会没有数据,但其他列明显不应该参与更新。 如果是DataRow也可以把不必要的key删除,但用用实体类操作时就不那么方便了,所以默认空值不参与更新。 如果需要更新的话可以设置Con -
关于数据源切换
在8.7.x及之后的版本中,实际上是不切换数据源的, 而是有多个数据源同时有效,需要操作哪个数据源,就通过ServiceProxy.service()返回哪个数据源相关的service 也就是说有多组service-datasource 无论怎么切换都不影响其他数据源的状态(如事务状态等) -
8.7.2及之后版本开始区分运行环境(Java/Spring/Solon/Vertx)
8.7.1及之前的版本默认基于spring 8.7.2及之后的版本需要区分运行环境,目前支持: Java(默认支持) Spring Solon Vertx 主要的区别只是类加载机制不同,核心代码都是一样的,对项目代码没有影响 如果是纯java环境, -
六种方式注册数据源
固定的数据源可以在配置文件中提前配置好 如果有动态数据源,如在运行过程中由用户动态添加数据源 可以在Java中注册 -
集成(复用)mybatis动态数据源
默认情况下anyline中的一个数据源 只会绑定一个DriverAdapter(用来生成一类数据库方言) 但有第三方数据源会通过DynamicDataSource实现数据源切换,这样就会造成一个数据源对应多种数据库如(mysql, oracle) 而adapter只会检测一次,这样就会造成 -
关于批量执行
JDBC批量执行要求SQL命令是一样的,第行的参数可以不一样。 service的insert,update,save,excute等方法在第一个参数前加一个int batch参数表示批量执行,batch表示每批次执行多少条命令。 如果是自定义的SQL参数需要提供一个二维数组,如 ListSQL中的变量及占位符格式
SELECT * FROM CRM_USER WHERE ID = :ID 以:标识的执行时直接替换 以::标识的执行时以?占位 NAME LIKE :NM + '%' (NAME = :NM) NAME = ':NM' NM IN (:NM)anyline是什么,从另一个角度看anyline
anyline是什么,简单来说是一个数据库操作工具,可以对比ORM来了解anyline 相对于ORM,anyline更注重的是动态、运行时、元数据、结果集操作。所以有时也称D-ORM(动态ORM) 动态就是非静态,最常见的如动态数据源,这个数据源地址甚至数据库类型在编码环节都不可知,适用场景
AnyLine的核心是一个面向运行时的D-ORM(动态对象关系映射) 主要用来读写元数据、动态注册切换数据源、对比数据库结构差异、生成动态SQL、复杂的结果集操作 适配各种关系型与非关系型数据库(及各种国产小众数据库) 常用于动态结构场景的底层支持,作为SQL解析引擎或适配器出现- 如果没有搜索到相关内容,就直接到群里喊一声,很快就有人回复
QQ群(86020680) 微信群 过期或满员联系管理员