一步一步实现TinyDSL实例.doc_第1页
一步一步实现TinyDSL实例.doc_第2页
一步一步实现TinyDSL实例.doc_第3页
一步一步实现TinyDSL实例.doc_第4页
一步一步实现TinyDSL实例.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一步一步实现Tiny Dsl Crud 数据库实例根据tinygroup官方文档中的DSL示例,结合eclipse和自己的理解,草写该篇文章,希望能给你带来帮助。注:需要先安装tiny的eclipse插件。1、 开发数据库层dslcruddao工程。首先运行eclipse,新建maven工程,FileNewOtherMavenMaven Project截图如下:点击Next,选择Maven-archetype-quickstart点击Next,根据情况分别在:Group Id、Artifact Id、Package输入栏中输入相应的内容后,点击Finish按钮即可生成工程文件。在src/main下新建一个Folder,name为resources,在pom.xml中增加底层依赖,注意JDBC的依赖请根据项目实际情况定制。org.tinygrouporg.tinygroup.tinysqldsl2.0.0org.tinygrouporg.tinygroup.jdbctemplatedslsession2.0.0commons-dbcpcommons-dbcp1.2.2org.tinygrouporg.tinygroup.databasechange2.0.0org.tinygrouporg.tinygroup.springutil2.0.0mysqlmysql-connector-java5.0.5通过Eclipse插件:“New”-Other-“tiny框架”-元数据-“方言模板”生成文件db.languagetype,然后根据需要保留实际使用的数据库方言,注意Java方言是必须保留的。本示例保留java和mysql语言。通过Eclipse插件:“New”-Other-“tiny框架”-元数据-“标准类型”生成文件dsl.datatype,然后定义各个标准类型。依赖方言模板。通过Eclipse插件:“New”-Other-“tiny框架”-元数据-“业务类型”生成文件datatype,然后定义各个业务类型。依赖标准类型。通过Eclipse插件:“New”-Other-“tiny框架”-元数据-“标准字段”生成文件dsl.stdfield,然后定义各字段。依赖业务类型。通过Eclipse插件:“New”-Other-“tiny框架”-数据库-“数据库表”生成文件user.table,然后定义各字段。依赖标准字段。通过右键菜单:tinyStudio-生成DSL JAVA类,动态生成相关对象。定义dsldao.beans.xml信息,配置数据源相关信息。 com.mysql.jdbc.Driverrootroot完毕后完整的工程目录结构2、 开发服务接口dslcrudservice工程。新建maven工程,FileNewOtherMavenMaven Project,类似1过程,生成工程后修改pom.xml,增加相关依赖。org.tinygrouporg.tinygroup.service2.0.0定义服务接口CrudDbService。public interface CrudDbService public void addUser(T user);public void updateUser(T user);public void deleteUserById(String id);public T getUserById(String id);public List queryUsers(T user);完毕后完整的工程目录结构3、 开发服务实现dslcrudserviceimpl工程。新建maven工程,FileNewOtherMavenMaven Project,类似1过程,生成工程后在src/main下新建一个Folder,name为resources,然后修改pom.xml,增加相关依赖。org.tinygrouporg.tinygroup.dslcruddao1.0-SNAPSHOTorg.tinygrouporg.tinygroup.dslcrudservice1.0-SNAPSHOT继承服务接口CrudDbService,实现CrudDbServiceImpl类。public class CrudDbServiceImpl implements CrudDbServiceprivate TUserDao userDao;public TUserDao getUserDao() return userDao;public void setUserDao(TUserDao userDao) this.userDao = userDao;public void addUser(TUser user) userDao.insertTUser(user);public void updateUser(TUser user) userDao.updateTUser(user);public void deleteUserById(String id) userDao.deleteTUser(Integer.valueOf(id);public TUser getUserById(String id) return userDao.getTUserById(Integer.valueOf(id);public List queryUsers(TUser user) return userDao.queryTUsers(user);点击CrudDbServiceImpl类,通过服务编辑器编辑CrudDbServiceImpl类,点击“服务管理”页,选择五个接口方法,点击保存,自动生成CrudDbServiceImpl.service.xml。配置dslcrud.beans.xml,定义服务接口和DSL层的bean关系。 配置服务映射关系,dslcrud.servicemapping.xml完毕后完整的工程目录:4、 开发服务包装dslcrudservicewrapper工程。新建maven工程,FileNewOtherMavenMaven Project,类似1过程,生成工程后在src/main下新建一个Folder,name为resources,然后修改pom.xml,增加相关依赖。org.tinygrouporg.tinygroup.dslcrudserviceimpl1.0-SNAPSHOTorg.tinygrouporg.tinygroup.cepcore2.0.0org.tinygrouporg.tinygroup.service1.2.3-SNAPSHOT根据服务实现工程dslserviceimpl。通过右键菜单:tinyStudio-生成服务实现,同时指定生成目录是dslcrudservicewrapper工程配置dslwrapper.beans.xml 完毕后完整的工程目录:5、 开发web控制层dslcrudweb工程。新建maven工程,FileNewOtherMavenMaven Project,通过webappprojectarchetype骨干工程生成标准web应用pom文件删除四个hello示例依赖,同时增加相关代码依赖。org.tinygrouporg.tinygroup.dslcruddao1.0-SNAPSHOTorg.tinygrouporg.tinygroup.dslcrudserviceimpl1.0-SNAPSHOTorg.tinygrouporg.tinygroup.dslcrudservicewrapper1.0-SNAPSHOTorg.mortbay.jettyservlet-api-4test org.tinygroup org.tinygroup.jquery 1.2.2 修改application.xml,增加databaseInstallerProcessor 修改Application.beans.xml的配置,增加如下配置修改默认布局文件default.layout,删除HelloWorld实例链接,添加DSL实例链接基于DSL的curd示例:增删改查示例开发MVC实现类TUserActionController()public class TUserAction implements WebContextAwareprivate CrudDbService crudDbService;private WebContext webContext;public CrudDbService getCrudDbService() if(crudDbService=null)crudDbService = BeanContainerFactory.getBeanContainer(getClass().getClassLoader().getBean(dslCrudServiceWrapper);return crudDbService;public void setCrudDbService(CrudDbService crudDbService) this.crudDbService = crudDbService;RequestMapping(value=/userAdd.do)View(value=/getList.do)public void addUserMethod() TUser user= new TUser();user.setAge(Integer.parseInt(webContext.getRequest().getParameter(age);user.setName(webContext.getRequest().getParameter(name);getCrudDbService().addUser(user);RequestMapping(value=/userUpdate.do)View(value=/getList.do)public void updateUserMethod() TUser user= new TUser();user.setId(Integer.parseInt(webContext.getRequest().getParameter(id);user.setAge(Integer.parseInt(webContext.getRequest().getParameter(age);user.setName(webContext.getRequest().getParameter(name);getCrudDbService().updateUser(user);RequestMapping(value=/userDelete.do)View(value=/getList.do)public void deleteUserByIdMethod() String id = webContext.getRequest().getParameter(id);getCrudDbService().deleteUserById(id);RequestMapping(value=/operate.do)View(value=/operate.page)ResultKey(value=user)public TUser operateMethod()String id = webContext.getRequest().getParameter(id);if(id!=null) return getCrudDbService().getUserById(id);return null;RequestMapping(value=/getList.do)View(/list.page)ResultKey(value=users)public List getUserListMethod()TUser user= new TUser();return getCrudDbService().queryUsers(user);public void setContext(WebContext context) this.webContext = context;增加注解匹配文件crud.annotation.xml 页面文件分list.page和operate两个。List.page用户管理界面: 名称年龄#foreach(user in users)$$user.age#end$(document).ready(function() $(#selectAll).click(function() var checked=$(this).get(0).checked; $(:checkbox:not(#selectAll).each(function() $(this).get(0).checked=checked; ); ); $(#add).click(function() location.href=$TINY_CONTEXT_PATH/operate.do; ); $(#update).clic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论