当前位置: 首页 > 软件库 > 数据库相关 > >

Ctrip DAL

携程 DAL 框架
授权协议 Apache
开发语言 Java
所属分类 数据库相关
软件类型 开源软件
地区 国产
投 递 者 穆展鹏
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

简介

Ctrip DAL是携程框架部开发的数据库访问框架,支持代码生成和水平扩展。其由携程技术中心框架部DAL团队开发,历经3年不断打磨,并在长期的实际使用中基于大量的用户反馈不断优化。

背景

随着企业规模扩张和业务量的急剧增加,作为系统核心的数据库相关开发也会经历一个由单一团队发展为多团队;由单机扩张到集群;由单数据库发展为多数据库;由采用单一数据库产品到多种数据库产品并存的过程。伴随这一过程的是如何管理数据库扩展,如何规范数据库访问,如何保护数据库投资,如何应对访问量增加,如何预防安全问题等一系列挑战。作为中国在线旅游行业的翘楚,携程也曾经面对同样困扰。为了应对这些挑战,实现企业10倍速发展,携程开发了具有自己特色的数据库访问框架Ctrip DAL

Ctrip DAL支持流行的分库分表操作,支持Java和C#,支持Mysql和MS SqlServer。使用该框架可以在有效地保护企业已有数据库投资的同时,迅速,可靠的为企业提供数据库访问层的横向扩展能力。整个框架包括代码生成器和客户端。工作模式是使用代码生成器在线生成代码,通过DAL客户端完成数据库操作。生成器具有丰富的向导指引,操作简单清晰,即可以批量生成标准DAO,也可以在方法级别定制数据库访问。客户端则可以简单的通过标准的maven方式添加依赖

model

Ctrip DAL与一般数据库框架最大的不同是从企业跨部门的角度,统一管理数据库相关资源。通过部署代码生成器,企业可以做到有效的管理全公司的DAL开发团队,明确数据库归属和定制数据库访问。通过代码生成器生成的标准DAO代码与客户端配合使用,可以大幅提高工作效率,保证代码质量。解决了业内常见的伴随业务成长而带来的系统维护困难,开发效率低下,代码风格五花八门,代码质量参差不齐等痛点问题。

overview

代码生成器简介

代码生成器允许用户创建Dal团队,组织开发人员,管理数据库,创建DAO并生成代码。

客户端简介

客户端配合代码生成器生成的代码来完成用户的数据库访问操作。并且为了适应不同公司的实际情况,DAL客户端定义了丰富的扩展接口,覆盖了从数据源管理,数据库映射,连接串读取到自定义访问方式等等方方面面的功能。同时为了方便系统监控还内置了系统状态,日志和统计模块。

通过DAL可以做到

  1. 在公司范围提供统一的数据库访问方式以降低总体的开发成本

  2. 避免由于技术人员水平不同而造成的相同功能实现方式,标准,质量不一至

  3. 集中优势人员,将相关的功能做深,做好,做稳定,做全面

  4. 出现技术问题的时候有专门的技术团队及时支持。减低总体的风险

使用概况

目前携程超过117个独立DAL团队通过Dal Code Gen管理数据库和创建DAO。

2000多个应用在使用DAL框架,占携程所有数据库应用总数超过90%。

支持2种主流编程语言:Java和C#。

支持2种主流数据库Mysql和MS SqlServer。

开发团队

发起人

该框架最初的构想由前携程系统研发部总监陈绍明先生(Simon Chen)提出,为支持携程10X提速战略规划。陈绍明同时组建了开发团队并决定了该框架的路线图和重大设计决策。

当前开发人员

  • 赫杰辉。主要负责DAL产品的总体需求。Java客户端总体设计与开发,代码生成器Java模板

  • 王晔楠。主要负责代码生成器,C#客户端

  • 李龙娇。测试负责人,自动化测试开发

历史贡献者

  • 原酒店部门Dal开发团队。最初版本的C#客户端和桌面版代码生成器的开发

  • 吴广安。早期版本的C#客户端重构和网页版代码生成器的创建

  • 袁王成。Java客户端HA,Markdown,AppInternal模块和代码生成器开发

  • 夏光智。代码生成器,数据源管理

  • 万国新。C#客户端

  • 张钰。总体测试

常用参考文档

简介

代码生成器(CodeGen)安装说明

代码生成器(CodeGen)使用说明

Java客户端 集成说明

Java客户端 配置与扩展

技术支持

携程框架DAL团队

  • 简介 Ctrip DAL是携程框架部开发的数据库访问框架,支持代码生成和水平扩展。其由携程技术中心框架部DAL团队开发,历经3年不断打磨,并在长期的实际使用中基于大量的用户反馈不断优化。 开源范围包括代码生成器,Java客户端和C#客户端。 背景 随着企业规模扩张和业务量的急剧增加,作为系统核心的数据库相关开发也会经历一个由单一团队发展为多团队;由单机扩张到集群;由单数据库发展为多数据库;由采用单

  • 首先申明,吐槽我程框架仅仅是希望框架能够更好,不代表不热爱公司哈。其次,携程的DAL框架(类似MyBatis的orm框架)确实有点那个不太给力了,估计和以前都是C#语言为主的历史原因。 DAL框架不给力的地方如下: 1、不支持Spring事务,很多功能没法实现,例如在事务性的a()里想要执行一段非事务的逻辑;或者在事务性的a()里想要执行一段新起事务的逻辑,但是b的事务和a的事务互不干扰。这些在S

 相关资料
  • DAL

    Debug Assistant Library (DAL) 是用于辅助调试的程序库,具有跨平台和统一接口的特点。 主要特性: 用于调试的助理库,跨平台的统一接口 支持多编译器,支持多平台 调试信息 断言 内存管理

  • 核心组件dexcoder-dal使用说明 如果你不喜欢用Hibernate、Mybaits这类ORM框架,喜欢JdbcTemplate或DbUtils,那么可以试试这个封装的通用dal,这可能是目前封装的最方便易用的通用dal层了。 dexcoder-dal的一些特性: 一个dao即可以搞定所有的实体类,不必再一个个建立跟实体对应的继承于类似BaseDao这类“通用dao”了。 各类方法参数除了E

  • 本着不重复造轮子的原则,基于mybatis、spring jdbc、hibernate等ORM的通用数据访问层,支持基于datasource的读写分离、主备自动切换和故障转移,支持简单的负载均衡。 特性: 基于mybatis、spring jdbc、hibernate等各大orm框架实现通用dal层功能,并可以与已有项目完全兼容。同时也可以在已经实现的orm框架之间任意切换,不需要对代码作任何改动

  • 只记得一些问题,分为三个部分 项目介绍+八股+口述手写js思路 自我介绍 两个项目介绍 vue优化 vue生命周期 深拷贝怎么实现 防抖节流怎么实现 js事件循环 ssr渲染 vue响应式原理 为什么要选择前端

  • 泡池子好久了,来写一下面经吧,可能记不清了,能写多少算多少。 9.2投递 9.14笔试 9.15接到面试通知 9.16线下一面 (50min) 常规八股 问的比较多的是redis 算法题:有许多个数字或字母组成的字符串,如何选出既有字母又有数字的 一道价值观问题 等待10分钟现场出结果约9.17二面 9.17线下二面(30min) 多线程问题: AQS CAS MySQL: 联合索引ABC: 1.

  • 面试官开场:我看你的经历只会C++,为什么要来投java岗,能介绍一下吗?HTTP和HTTPS的区别,SSL/TLS解决了什么问题MySQL的索引有哪些,正序索引和倒序索引(不是倒排索引)了解redis以外的NoSQL吗分布式的CAP理论 HTTP和HTTPS的区别,SSL/TLS解决了什么问题 MySQL的索引有哪些,正序索引和倒序索引(不是倒排索引) 了解redis以外的NoSQL吗 分布式的