最近学习了下携程的数据库访问框架,网上有比较完整详细的学习方案,
本篇也是基于前者的学习文档做简单的介绍,希望能给初学者一些帮助。
原文链接地址可以点这里: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可以向下兼容,关于代码的生成大家就可以自己多测试测试了。