一步一步实现TinyDSL实例.docx
《一步一步实现TinyDSL实例.docx》由会员分享,可在线阅读,更多相关《一步一步实现TinyDSL实例.docx(26页珍藏版)》请在冰豆网上搜索。
一步一步实现TinyDSL实例
一步一步实现TinyDslCrud数据库实例
根据tinygroup官方文档中的DSL示例,结合eclipse和自己的理解,草写该篇文章,希望能给你带来帮助。
注:
需要先安装tiny的eclipse插件。
1、开发数据库层dslcruddao工程。
首先运行eclipse,新建maven工程,File—New—Other—Maven—MavenProject截图如下:
点击Next,选择Maven-archetype-quickstart
点击Next,根据情况分别在:
GroupId、ArtifactId、Package输入栏中输入相应的内容后,点击Finish按钮即可生成工程文件。
在src/main下新建一个Folder,name为resources,
在pom.xml中增加底层依赖,注意JDBC的依赖请根据项目实际情况定制。
org.tinygroup
org.tinygroup.tinysqldsl
2.0.0
org.tinygroup
org.tinygroup.jdbctemplatedslsession
2.0.0
commons-dbcp
commons-dbcp
1.2.2
org.tinygroup
org.tinygroup.databasechange
2.0.0
org.tinygroup
org.tinygroup.springutil
2.0.0
mysql
mysql-connector-java
5.0.5
通过Eclipse插件:
“New”-"Other"-“tiny框架”-"元数据"-“方言模板”生成文件db.languagetype,然后根据需要保留实际使用的数据库方言,注意Java方言是必须保留的。
本示例保留java和mysql语言。
通过Eclipse插件:
“New”-"Other"-“tiny框架”-"元数据"-“标准类型”生成文件dsl.datatype,然后定义各个标准类型。
依赖方言模板。
通过Eclipse插件:
“New”-"Other"-“tiny框架”-"元数据"-“业务类型”生成文件dsl.bizdatatype,然后定义各个业务类型。
依赖标准类型。
通过Eclipse插件:
“New”-"Other"-“tiny框架”-"元数据"-“标准字段”生成文件dsl.stdfield,然后定义各字段。
依赖业务类型。
通过Eclipse插件:
“New”-"Other"-“tiny框架”-"数据库"-“数据库表”生成文件user.table,然后定义各字段。
依赖标准字段。
通过右键菜单:
"tinyStudio"-"生成DSLJAVA类",动态生成相关对象。
定义dsldao.beans.xml信息,配置数据源相关信息。
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"xmlns:
context="http:
//www.springframework.org/schema/context"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans.xsd
http:
//www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context.xsd">
class="org.tinygroup.dslcrud.TUserDaoImpl">
class="org.tinygroup.jdbctemplatedslsession.SimpleDslSession">
com.mysql.jdbc.Driver
mysql:
//localhost:
3306/dslcrud?
createDatabaseIfNotExist=true">
root
root
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
class="org.springframework.transaction.support.TransactionTemplate">
完毕后完整的工程目录结构
2、开发服务接口dslcrudservice工程。
新建maven工程,File—New—Other—Maven—MavenProject,类似1过程,生成工程后修改pom.xml,增加相关依赖。
org.tinygroup
org.tinygroup.service
2.0.0
定义服务接口CrudDbService。
publicinterfaceCrudDbService{
publicvoidaddUser(Tuser);
publicvoidupdateUser(Tuser);
publicvoiddeleteUserById(Stringid);
publicTgetUserById(Stringid);
publicListqueryUsers(Tuser);
}
完毕后完整的工程目录结构
3、开发服务实现dslcrudserviceimpl工程。
新建maven工程,File—New—Other—Maven—MavenProject,类似1过程,生成工程后在src/main下新建一个Folder,name为resources,然后修改pom.xml,增加相关依赖。
org.tinygroup
org.tinygroup.dslcruddao
1.0-SNAPSHOT
org.tinygroup
org.tinygroup.dslcrudservice
1.0-SNAPSHOT
继承服务接口CrudDbService,实现CrudDbServiceImpl类。
publicclassCrudDbServiceImplimplementsCrudDbService{
privateTUserDaouserDao;
publicTUserDaogetUserDao(){
returnuserDao;
}
publicvoidsetUserDao(TUserDaouserDao){
this.userDao=userDao;
}
publicvoidaddUser(TUseruser){
userDao.insertTUser(user);
}
publicvoidupdateUser(TUseruser){
userDao.updateTUser(user);
}
publicvoiddeleteUserById(Stringid){
userDao.deleteTUser(Integer.valueOf(id));
}
publicTUsergetUserById(Stringid){
returnuserDao.getTUserById(Integer.valueOf(id));
}
publicListqueryUsers(TUseruser){
returnuserDao.queryTUsers(user);
}
}
点击CrudDbServiceImpl类,通过服务编辑器编辑CrudDbServiceImpl类,点击“服务管理”页,选择五个接口方法,点击保存,自动生成CrudDbServiceImpl.service.xml。
配置dslcrud.beans.xml,定义服务接口和DSL层的bean关系。
class="org.tinygroup.dslcrud.service.impl.CrudDbServiceImpl">
配置服务映射关系,dslcrud.servicemapping.xml
完毕后完整的工程目录:
4、开发服务包装dslcrudservicewrapper工程。
新建maven工程,File—New—Other—Maven—MavenProject,类似1过程,生成工程后在src/main下新建一个Folder,name为resources,然后修改pom.xml,增加相关依赖。
org.tinygroup
org.tinygroup.dslcrudserviceimpl
1.0-SNAPSHOT
org.tinygroup
org.tinygroup.cepcore
2.0.0
org.tinygroup
org.tinygroup.service
1.2.3-SNAPSHOT
根据服务实现工程dslserviceimpl。
通过右键菜单:
"tinyStudio"-"生成服务实现",同时指定生成目录是dslcrudservicewrapper工程
配置dslwrapper.beans.xml
class="org.tinygroup.dslcrud.service.impl.CrudDbServiceImplWrapper">
完毕后完整的工程目录:
5、开发web控制层dslcrudweb工程。
新建maven工程,File—New—Other—Maven—MavenProject,通过webappprojectarchetype骨干工程生成标准web应用
pom文件删除四个hello示例依赖,同时增加相关代码依赖。
org.tinygroup
org.tinygroup.dslcruddao
1.0-SNAPSHOT
org.tinygroup
org.tinygroup.dslcrudserviceimpl
1.0-SNAPSHOT
org.tinygroup
org.tinygroup.dslcrudservicewrapper
1.0-SNAPSHOT
org.mortbay.jetty
servlet-api-2.5
6.1.14
test
org.tinygroup
org.tinygroup.jquery
1.2.2
修改application.xml,增加databaseInstallerProcessor
修改Application.beans.xml的配置,增加如下配置
--database-->
修改默认布局文件default.layout,删除HelloWorld实例链接,添加DSL实例链接
基于DSL的curd示例:
增删改查示例
开发MVC实现类TUserAction
@Controller()
publicclassTUserActionimplementsWebContextAware{
privateCrudDbServicecrudDbService;
privateWebContextwebContext;
publicCrudDbServicegetCrudDbService(){
if(crudDbService==null){
crudDbService=BeanContainerFactory.getBea