CtripDal 携程数据库访问框架简析

6大绝招:Ctrip DAL 让 C# 分表分库不再是难题 通过以上六个步骤的详细讲解,相信你已经掌握了如何在 C# 项目中使用 Ctrip DAL 组件实现高性能的分表分库功能。无论是插入、查询、更新还是删除数据,Ctrip DAL 都能为你提供强大的支持。如果你有任何问题或建议,欢迎在评论区留言交流,我们一起学习,共同进步!💬🌟。 阅读详情

最近学习了下携程的数据库访问框架,网上有比较完整详细的学习方案,

本篇也是基于前者的学习文档做简单的介绍,希望能给初学者一些帮助。

原文链接地址可以点这里:http://www.oschina.net/p/ctrip-dal?fromerr=dydkH4Hz

以下是我个人的总结,以便日后回顾。


CtripDal 的使用简单来说可以分成两部分:

一,代码生成器

不同于其他的代码生成器,携程这款开源框架有自己的web主页,方便管理团队人员,数据库,和生成的dao,

适合整个项目团队使用,生成统一风格代码。

那么如何安装使用呢?

1,下载项目源码,然后打成war包,部署到自己的服务器上启动。

下载地址:https://github.com/ctripcorp/dal.git

2,如果各位觉得下载源码比较麻烦,可以直接下载打包好的ROOT.war,部署到自己的服务器上即可。

下载地址:http://download.youkuaiyun.com/detail/hejiehui/9650838

这里我说明一下:

(1)源码下载后在我的工程里一直报错,引入了缺失的包还是一样,所以我采用的是上面的方法2,直接下载ROOT.war包。

(2)该项目只适用于tomcat 7,我用的是apache-tomcat-7.0.68,可以正常启动。

(3)删除tomcat webapps中所有内容,将ROOT.war部署进去,启动tomcat,访问http://localhost:8080


成功后可以进入如下页面,这里需要填写可用的数据库地址,连接测试成功后点击下一步:

由于是第一次登陆,以下的所有信息都可以随便填写,保证数据库连接可用即可,方便后面做测试。


然后按照说明填写以下信息,点击“保存”,CodeGen的初始化工作已全部完成。

  • DB Catalog:选择要保存CodeGen数据的数据库
  • Team Name:请输入DAL Admin Team的名称(DAL Admin Team是CodeGen系统的管理员组,拥有最高的权限)
  • Comment:对Team Name的注释
  • Admin No:管理员工号(该帐号为DAL Admin Team的初始管理员)
  • Name:管理员姓名
  • Email:管理员电子邮箱地址
  • Password:管理员密码,用于登录CodeGen系统(后台以MD5加密方式存储) 

此时直接点击保存会保存失败,如下图:


**这是因为这里所填写的信息是要保存到刚刚填写的数据库里面的,必须先在数据库建好项目需要的表。

解决办法:

找到你的tomcat按照目录下面的script.sql 文件,在你的数据库中执行脚本,

我的目录是:H:\tools\code-gen-eclipse\apache-tomcat-7.0.68\webapps\ROOT\WEB-INF\classes\script.sql

执行成功后可以看到以下几个表目录:


表建好以后再继续上一步的操作,点击保存,成功进入登录页面。

这里可以用上一步填写的用户名密码登录,也可以再创建账号后登录。


成功登录后进入主页:


这里大家可以去查看数据库,创建的两个账号已经保存在login_users表中:



接下来的事情就是如何生成自己的代码了,

由于原文已经说得很清楚了,我这里不做介绍,大家可以访问这里:代码生成器使用说明

上图是代码生成完成后的界面,列表里可以看到自己生成的代码,方便管理,完整代码如下:



二,下载生成好的代码,集成到自己的项目中

在上图中,大家可以看到已经生成好的代码结构,只有dao class 跟 entity class,没有dao interface。

接下来就是将代码拷贝到自己的工程里面了。

(1) 需要依赖携程提供的客户端的包,由于是maven工程,大家可以直接添加依赖到pom.xml中

配置如下:

	<repositories>
		<!-- 集成携程数据库访问框架客户端 -->
		<repository>
			<id>dal-repo</id>
			<url>https://raw.github.com/ctripcorp/dal/mvn-repo/</url>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>always</updatePolicy>
			</snapshots>
		</repository>
	</repositories>

	<dependencies>
		<!-- 携程数据库访问框架 -->
		<dependency>
			<groupId>com.ctrip.platform</groupId>
			<artifactId>dal-client</artifactId>
			<version>1.6.1</version>
		</dependency>
	</dependencies>
(2) web.xml 中添加

	<!-- dal预热连接池,false不开启 -->
	<context-param>
	    <param-name>com.ctrip.platform.dal.dao.DalWarmUp</param-name>
	    <param-value>false</param-value>
	</context-param>
	<!-- dal监听器 -->
	<listener>
	    <listener-class>com.ctrip.platform.dal.dao.helper.DalClientFactoryListener</listener-class>
	</listener>
(3) 将生成的dao 和 entity 拷贝到自己的目录下面

(4) 将配置文件 dal.xml , datasource.xml 拷贝到resource目录下面

(5) demo project :https://github.com/ctripcorp/dal/blob/master/doc/dal-demo.zip

到此就已经完成了,项目依赖jdk1.7,如果使用的jdk1.8可以向下兼容,关于代码的生成大家就可以自己多测试测试了。


Ctrip DAL:支持 C# 的高效分表分库组件,打造高性能分布式数据库解决方案 Ctrip DAL 是携程开源的一款数据访问层框架,主要用于解决大规模数据存储和查询的问题。它提供了灵活的分片机制和高效的路由功能,使得开发者可以轻松应对高并发、大数据量的应用场景。 阅读详情

相关推荐

携程开源DAL代码生成器 2016-10-11

Code Gen的最新版本。 修改了C#模板相关的bug

Japanese-MPT-7B应用案例:日语客服、翻译、创作的实战演示

Japanese-MPT-7B是一个专为日语优化的70亿参数大语言模型,基于先进的MPT架构构建。这个强大的日语AI模型能够处理多种日语自然语言任务,包括智能客服对话、精准翻译和创意内容生成。在前100个字中,我们已经介绍了Japanese-MPT-7B的核心功能——这是一个专门针对日语优化的70亿参数大语言模型,基于MPT架构,能够出色地完成日语客服、翻译和创作等任务。 ## 🎯 为什么选择

gitblog_00089的博客 492

携程开源DAL代码生成器

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

JRL 行为克隆(BC)实战指南:基于 JAX 与 Acme 的离线强化学习策略克隆实现与调参详解

本文围绕 JRL(Jax offline RL research codebase)中的行为克隆(Behavioral Cloning,BC)智能体展开,系统讲解其在 JAX/Acme 框架下的实现原理、配置体系与运行方式。读完本文,你将掌握 BC 在 JRL 中的完整启动命令、全局命令行参数与 gin 配置的分工、`num_sgd_steps_per_step` 与 `batch_size`/`

gitblog_00315的博客 369

CtripDAL是携程框架部开发的数据库访问框架

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

携程DAL最新war包(2020.03.31)

携程DAL最新war包(2020.03.31),可直接运行,解决jar缺失等各种问题,更新日期2020.03.31

携程开源数据库访问框架Ctrip DAL

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

fhzh520的专栏 2171

Apollo阿波罗是携程框架部门研发的配置管理平台

一、背景介绍 Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

基于Drools规则引擎与状态机构建动态叙事系统:身份决定任务的设计与实现

规则引擎是一种将业务逻辑与应用程序代码分离的软件组件,它通过预定义的规则集对输入数据进行评估和推理,从而自动执行决策或触发动作。其核心原理是基于产生式系统,遵循“条件-动作”模式,当事实满足特定条件时,引擎便执行对应的操作。这种技术价值在于极大地提升了系统的灵活性和可维护性,使复杂、多变的业务逻辑能够被直观地定义和动态调整。在游戏开发、智能决策、业务流程管理等应用场景中,规则引擎是实现动态行为与个性化响应的关键技术。本文聚焦于互动叙事与游戏设计领域,探讨如何利用Drools规则引擎结合有限状态机,构建一个“

weixin_34159110的博客 420

携程数据库访问框架dal

dal-client-2.0.13-release javax.servlet-3.0.0.v201103241009.jar mssql-jdbc-6.4.0.jre7.ctrip.jar 合集

Zabbix故障排查10051端口无法启动:zabbix-server.service: main process exited, code=exited, status=1/FAILURE

zabbix-server.service: main process exited, code=exited, status=1/FAILURE报错说与数据库失去连接。

" DevOps菜鸟(Xu JieHao)" 的博客 2255

支持c#的分表分库组件-Ctrip DAL

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

寒冰屋的专栏 434

CS224W图神经网络实战:如何用Motifs和Graphlets分析社交网络结构?

本文基于斯坦福CS224W课程,深入探讨了如何利用网络模体(Motifs)和图元(Graphlets)分析社交网络的微观结构。通过实战代码演示,文章介绍了如何识别具有统计显著性的关键连接模式,计算节点的图元度向量以刻画局部拓扑特征,并将这些结构洞见应用于社区发现、影响力分析及图神经网络的节点特征工程,从而提升模型在虚假账号检测等任务中的性能。

2w3e4r5t6y的博客 911

【数据分享】12.5米分辨率DEM地形数据(分省)

该数据来源于NASA地球科学数据网站(https://nasadaacs.eos.nasa.gov/),是ALOS卫星获取的高精度地形数据。该数据由于精度高,包括全省范围的数据和省内每个城市范围的数据!

JData_Engineer的博客 2171

【JDK】win 10 / win 11:jdk 8 下载、安装、配置、验证

win10 / win 11:JDK 最新版本下载 / 历史版本下载(jdk 8)、安装、配置系统环境变量、验证安装全详细操作教程

顾三殇 —— 博客空间(软件测试) 13万+

探索AntData.ORM:高效数据库访问库的崭新篇章

探索AntData.ORM:高效数据库访问库的崭新篇章 AntData.ORM特色:vs插件或者t4一键生成entity 支持配置非物理外键。分离linq转sql引擎(原生linq非扩展)和执行dal功能,支持异步,支持netcore2.0项目地址:https://gitcode.com/gh_mirrors/an/AntData.ORM 在开发过程中,与数据库的交互是我们必不可少的一部分。为了...

gitblog_00046的博客 465

PyTorch生成式人工智能(25)——基于Transformer实现机器翻译

不同于循环神经网络 (RNN) 按顺序处理数据,Transformer 以并行的方式处理输入数据(例如句子)。这种并行处理提高了效率,但并未使其能够识别输入的顺序。为了解决这个问题,Transformer 向输入的词嵌入中添加了位置编码。这些位置编码是分配给输入序列中每个位置的独特向量,其维度与输入词嵌入对齐。本节将以英语到法语的翻译为例,通过介绍如何训练 Transformer 模型将英语句子转换为法语,深入理解 Transformer 的架构及自注意力机制的运作方式。

盼小辉丶的博客 2729

Java数据访问层对比

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34390105的博客 339

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 101

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3750

目录索引

Github 项目地址: The fastest and best ORM lite on .NET Core for MySQL/SqlServer ! 一、说明   1.MyDAL     -- 专注 Data Access Layer 的一个 .Net Standard 2.0 轻型 ORM 框架 (演进中~~)     -- 充分借鉴EntityFramework...

weixin_30878361的博客 65

43、FMCW雷达高度计仿真

本文介绍了FMCW雷达高度计的波形级建模与仿真过程,重点模拟了着陆和倾斜两种飞行场景以评估其性能。通过结合高程数据和飞行轨迹构建雷达场景,使用自定义信号处理器分析IQ样本并估计高度。结果表明,该高度计在多数情况下满足性能要求,但也存在误差较大的点,提出了地面检测算法优化的潜在方向。

neovim7hacker的博客 135
上一篇: zookeeper Error:KeeperErr orCode = NodeExists
下一篇: 常用框架(三):spring+springMvc+mybatis+maven+shiro+freemarker
小小小爬虫
博客等级 码龄10年 16粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值