liferay对数据库的操作他有自已的一套写法,我们可以用service.xml来自动生成这些代码, 这样就省了不少力气.在ext-impl包的classes下面service.xml写上数据库表字段如下:
<?xml version="1.0"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 4.3.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_4_3_0.dtd">
<service-builder root-dir=".." package-path="com.ext.portlet">这个是路径一般和开发的portlet在一个包下
<portlet name="mail" short-name="mail" />
<entity name="MailEntry" local-service="false" remote-service="true" persistence-class="com.ext.portlet.mail.service.persistence.MailEntryPersistence" table="*****">
<!-- PK fields -->
<column name="mailId" type="long" primary="true" />
<!-- Audit fields -->
<column name="groupId" type="long" />
<column name="createDate" type="Date" />
<!-- Other fields -->
<column name="name" type="String" />
column name这个值是要和表中的字段名一样,会自动全变成大写.
<!-- Order -->
<order by="asc">
<order-column name="createDate" case-sensitive="false" />
</order>排序设置.
<!-- Finder methods -->
<finder name="groupId" return-type="Collection">
<finder-column name="groupId" />
</finder>
增加的查找,删除的方法,默认情况下他会生成一些常用的方法,如:主键查找,查找所有,删除.你可以根据自已的需要来增加一些方法,包括多个字段的组合查找.
</entity>
<exceptions>
<exception>EntryName</exception>
</exceptions>
</service-builder>
OK,这个文件写好了以后,build-service这个文件,然后你就会发现在你的ext-impl包下面指定的地方多了两个文件夹,一个service,一个model.impl,service下面会有三个文件夹,如果有权限设置也是在这里的.然后在ext-service这个包下面也会多一个包,这个包下面有两个包,一个model,一个service.ext-impl/classes/META-INF/里面的hbm.xml,spring.xml,hints.xml会自动的加上相关的代码.
然后要修改其中的三个文件,ext-service/新建包名/service/***EntryService.java和***EntryServiceUtil.java,***EntryService.java这个是个接口,你可以把你要用到的一些持久化的方法(ext-impl/新建包名/service/***Entrypersistence.java中有所有的方法)写到这里,***EntryServiceUtil.java这里写上这些静态方法(在action中操作的时候就是调用这个类),最后一个要修改的是ext-impl/新建包名/service/impl/***EntryServiceImpl.java因为他实现了,***EntryService这个接口所以把他的实现方法写这里就好了.
以上我说的可能比较粗糙,其实自动生成这些文件后,修改那三个文件时,如果您不知道怎么改可以参照liferay的源码,他的目录层次和这个是一样的,在blog和journalArtlice里面相对应的三个文件就可以了,基本上是一看就明白了.最后一点自动生成spring.xml中bean id="com.ext.portlet.包名.service.persistence.***EntryPersistenceImpl 对应的class值,这个值每次总是个错的,不晓得为什么,要手动的改一下.
分享到:
相关推荐
通过分析“Liferay开发持久化层和服务层演示Demo代码”这一主题,我们将理解Liferay Service Builder如何帮助开发者高效地管理数据库操作,并创建自定义服务。 首先,Liferay是一个开放源代码的企业级门户平台,它...
Liferay的Service Builder工具也可以与Hibernate结合,自动生成服务层代码,方便数据操作。 四、Liferay 学习路径 学习Liferay,首先要熟悉Java EE基础,包括Servlet、JSP、JPA等。接着,了解portlet开发,掌握...
例如,通过解析service.xml文件,可以自动生成EJB、HBM(Hibernate Mapping)和Model组件,这一过程主要依赖于Xdoclet引擎。这种自动化机制大大提升了开发效率,同时也确保了代码的一致性和可维护性。 ### 总结 ...
在Liferay开发中,服务构建器是一个非常重要的工具,它能够自动生成与数据库交互的服务层代码。通过定义`service.xml`文件,开发者可以轻松地创建实体类、DAO层、本地服务接口等,极大地提高了开发效率。 #### `...
开发者可以通过服务建设者生成持久化模型、DAO层、服务接口和实现,以及相应的XML配置文件。 5. **Liferay Theme**:Liferay主题允许开发者自定义门户的外观和样式。SDK包含创建和修改主题的工具,包括预设的模板和...
每个 Portlet 的持久性数据都有单独的 ejb.xml 文件,通过 Ant 构建工具中的 build-ejb 命令生成,XDoclet 用于自动代码生成。 - **安全机制**:Liferay 采用 JAAS(Java Authentication and Authorization Service...
2. **自动生成持久化层和服务层的类** - **编写SERVICE.XML**:Service Builder是Liferay提供的一种工具,用于自动生成服务层代码。在`service.xml`中,定义实体类的字段、关联关系以及自动生成的服务接口和实现。 ...
Service Builder允许开发者自动生成服务层代码,简化数据库操作,而DAO(数据访问对象)模式则提供了与数据库交互的标准接口。 书中还会涵盖主题和布局的主题,这是Liferay Portal的一大特色。通过创建和应用自定义...
- **利用ServiceBuilder自动生成持久化层和服务层的类**:运行Ant任务后,ServiceBuilder会根据service.xml文件中的配置自动生成DAO接口和实现类、服务接口和实现类等。 ##### 3. 配置一个portlet - **定义...
通过Service Builder,开发者可以自动生成DAO、Service和API,从而减少手动编写SQL和持久层代码的工作量。 6. **Liferay Theme 开发** 主题决定了Liferay门户的外观。开发者可以通过修改或创建新的主题,改变颜色...
同时,服务层(Service Layer)提供了一组基于JPA的持久化服务,方便操作数据库。 - 服务构建器:生成服务层代码,提供对数据模型的操作API。 - Hook开发:通过hook扩展或覆盖Liferay的默认行为,无需修改源码。 - ...
一旦定义完成,Service Builder会自动生成必要的服务接口、实现类以及DAO(数据访问对象),简化了数据库操作。 接下来,我们引入Spring Data,这是一个强大的框架,它简化了JPA(Java Persistence API)的使用,...
PropertySet 则是一个基于 XML 的持久化方案。 - **AOP 和 IoC 框架**:Spring 是一个全能型的 AOP 和 IoC 容器,尽管配置较为复杂,但提供了强大的功能;AspectJ 和 AspectWerkz 分别是 AOP 方面的框架;...
18. **项目构建和安装包制作**:Ant和Maven负责构建自动化,Izpack等工具用于创建安装程序。 19. **软件过程和建模设计**:CMMI、RUP、XP等软件过程模型,以及Rose、PowerDesigner等建模工具,对大型项目的管理至关...