`
myreligion
  • 浏览: 205354 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

3. 配置guzz.xml

    博客分类:
  • guzz
阅读更多

guzz.xml为guzz框架的核心配置文件,用于定义应用配置,数据库使用,ORM,以及服务等。

guzz.xml样本

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE guzz-configs PUBLIC "-//GUZZ//DTD MAIN CONFIG//EN" "http://guzz.xiu666.com/dtd/guzz.dtd">

<guzz-configs>

	<config-server>
		<server class="org.guzz.config.LocalFileConfigServer">
			<param name="resource" value="guzz_app.properties" />
		</server>
	</config-server>

	<dialect class="org.guzz.dialect.H2Dialect" />

	<tran>
		<dbgroup name="default" masterDBConfigName="masterDB"  />
		<dbgroup name="updateDB" masterDBConfigName="updateMasterDB" />
		<dbgroup name="logDB" masterDBConfigName="updateMasterDB" />
	</tran>

	<business name="guzzSlowUpdate" dbgroup="updateDB" file="classpath:org/guzz/service/core/IncUpdateBusiness.hbm.xml" />
	<business name="user" file="classpath:org/guzz/test/User.hbm.xml" />
	<business name="article" file="classpath:org/guzz/test/Article.hbm.xml" />
	<business name="articleCount" file="classpath:org/guzz/test/ArticleCount.hbm.xml" />

        <business dbgroup="updateDB" name="guzzSlowUpdate" file="classpath:org/guzz/service/core/impl/IncUpdateBusiness.hbm.xml" />
	<business dbgroup="logDB" name="systemLog" file="classpath:com/mycompany/myapp/business/SystemLog.hbm.xml" />

        <service name="logService" configName="guzzDBLogServiceClient" class="org.guzz.service.log.impl.DBLogServiceImpl" />
	<service name="slowUpdateServer" configName="guzzSlowUpdateServer" class="org.guzz.service.db.impl.SlowUpdateServerImpl" />

	<sqlMap dbgroup="user">
		<select id="selectUser" orm="user">
			select * from @@user where @id = :id
		</select>

		<update id="updateUserFavCount" orm="userObjectMap">
			update @@user set @favCount = favCount + 1
		</update>

		<select id="selectUsers" orm="userObjectMap">
			select @id, @name, @vip, @favCount from @@user
		</select>

		<orm id="userObjectMap" class="org.guzz.test.UserModel" dbgroup="user">
		        <result property="id" column="pk" type="int" />
                        <result property="name" column="userName"/>
			<result property="favCount" column="FAV_COUNT"/>
			<result property="vip" column="VIP_USER"/>
	       </orm>
	</sqlMap>

</guzz-configs>
 

其中:

config-server :指定配置服务器实现,guzz通过配置服务器读取应用的配置文件。默认实现为本地文件配置,通过读取guzz_app.properties加载配置信息。
guzz_app.properties: 为应用配置文件,按照组进行设置。类似于Mysql数据库的配置文件,在下一节进行详细介绍。

dialect :指定数据库的实现。目前dialect主要用来创建主键,以及进行物理分页查询。dialect可以指定1个名称,默认为default。

tran :定义数据库组,1个tran下可以有多个 dbgroup, 每个dbgroup可以指定主数据库配置名和从数据库配置名,以及dialect名(默认用default)。guzz通过配置名,从配置服务器中查询配 置,默认实现为从guzz_app.properties读取此组名的配置信息。

business :定于领域对象。1个领域对象对应数据库中的一张表。领域对象必须指定一个名字name属性(以后称为 businessName),这个名字以后可以用来代替类名查询对象,以及在jsp taglib中标示读取什么对象。business可以指定dbgroup属性,标示对象存储在那1组数据库中,默认为default组。file属性制 定hbm.xml文件位置。business可以指定interpret属性进行高级的taglib标签条件控制,interpret为实现 org.guzz.orm.BusinessInterpreter接口的完整类名。

service :用于外挂系统服务。name为服务名称,在程序中可以通过name查询到服务实例;configName为配置信息组名称,class为服务实现客户端。service必须实现org.guzz.Service 接口。

sqlMap :定义sql语句以及sql映射,类似于ibatis。sqlMap可以指定dbgroup属性标记此sqlMap下所有查询对应的数据库组。

sqlMap/select|update :定义sql查询和更新|删除语句,通过id指定名称(在程序中使用的名称),通过orm 属性指定要Mapping的配置。sql语句为可在数据库中执行的标准sql语句。在编写sql语句时,可以@@businessName或者 @@full-class-name的方式代替数据库表名,用@java属性名称或者@orm/result/property 名称代替对应的数据库字段,guzz在执行时会完成自动替换。如果sql中包含参数,使用“冒号+参数名称”代替,如“:userName”,在程序中执 行时通过java.util.Map传入"userName"->value对进行调用,guzz将完成命名参数的参数设置 (PreparedStatement方式)。

orm :定义sql查询结果字段与对象的对应关系,类似ibatis。可以通过指定dbgroup覆盖sqlMap中设定的数据库。 orm可以放在sqlMap内,表示此ORM在本sqlmap内有效,也可以放在sqlMap外,表示所有sqlMap中的select/update都 可以使用。

orm/result :每1个Result代表一列的对应关系,property为java属性名,column为数据库属性,type为数据类型(与hbm.xml中的type含义和取值相同);如果type没有指定,则通过orm/class按照property属性反射获取类型。

分享到:
评论

相关推荐

    guzz: a empty sample project build20110323.zip

    - `pom.xml`:Maven的项目对象模型文件,定义了项目的依赖和构建过程,其中会包含Guzz的相关库依赖。 学习Guzz的过程中,你需要理解以下几个关键知识点: 1. **任务定义**:编写Guzz任务类,声明任务的输入和输出...

    guzz的jar包

    guzz的jar包,工程下直接考过来的,可以直接使用

    guzz开发jar

    guzz是一套用来进行快速开发和高性能网站设计的java框架,通过ORM、多数据源数据管理、以及通用数据处理,为系统在数据层的设计提供一站式解决方案。用于替代或者补充hibernate或ibatis,并提供更多的大型系统架构...

    guzz的「Guzz」-crx插件

    为Guzz启用屏幕共享。 此扩展程序允许www.guzz.io用户共享桌面屏幕 支持语言:English

    Guzz-crx插件

    【Guzz-crx插件】是一款专为Guzz平台设计的屏幕共享扩展程序,它使得用户能够在使用Guzz.io服务时轻松实现桌面屏幕共享功能。这一功能对于远程协作、在线会议、教育辅导以及团队沟通等场景具有极大的价值,极大地...

    Java面试题全集(下)

    在Java中,这些元数据可以通过XML文件或注解的方式进行配置。 2. 持久层设计:持久层设计的主要目的是将内存中的数据持久化到外部存储设备中,比如关系型数据库、文件系统或消息队列等。持久层的设计目标包括数据...

    InstallAnywhere 2008破解与自定义PlugIn陷阱经验分享

    NULL 博文链接:https://guzz.iteye.com/blog/256235

    轻松将一张大表分切到不同的机器中

    NULL 博文链接:https://guzz.iteye.com/blog/883225

    bicq代码

    为了深入了解,你可以访问提供的博文链接(https://guzz.iteye.com/blog/507276),在那里可能会找到关于BICQ的详细解释、使用示例和开发背景等信息。同时,查看压缩包中的文件(BICQ)可以获取实际的源代码,进一步...

    java框架面试题

    通常情况下,这种机制涉及元数据的定义,比如XML配置文件或注解,用来描述对象和数据库表之间的映射关系。当数据需要保存或从数据库中检索时,ORM工具会根据定义的映射关系自动生成相应的SQL语句,执行后返回对象。 ...

    JAVA面试问题及答案.docx

    ORM技术通过XML或注解来定义这种映射关系,使得Java对象可以直接被持久化到数据库,或者数据库中的记录可以被转化为Java对象。Hibernate是一个流行的Java ORM框架,它提供了SessionFactory和Session两个核心概念。...

    JAVA面试问题及标准答案.docx

    ORM通过元数据(例如XML或注解)将对象模型映射到数据库关系模型,使得程序可以直接操作对象,而无需关注底层数据库的细节。例如,Hibernate是一个流行的Java ORM框架,它可以自动将对象持久化到数据库中,或将...

    哀悼日变灰操作

    根据给定文件的信息,我们可以提炼出与“哀悼日变灰操作”相关的IT知识点,但首先需要澄清的是,文件内容似乎包含了一些不相关的代码片段和文档,这些内容涉及一个名为"Guzz"的全栈数据层解决方案框架,以及一系列与...

    Java面试题全集.docx

    - **工作原理**:ORM通过元数据(如XML或注解)来描述对象和数据库之间的映射关系。当对象的状态发生改变时,ORM框架会负责更新数据库,反之亦然。 - **优点**:提高开发效率、降低代码复杂度、增强代码可维护性。 -...

    java框架方面面试题

    它通过定义元数据来描述对象和数据库之间的映射关系,在Java中,这样的元数据可以是XML格式或者使用注解方式。ORM技术允许开发者以面向对象的方式来操作数据库,从而将对象数据自动持久化到数据库中,或者将数据库中...

    bof:人类的HTTP客户端

    总结起来,Bof: 是用户友好的避免使用魔术字符串和数组进行配置:相反,它提供可由IDE自动完成的显式,类型化和文档化方法带有默认值:默认支持JSON,4xx和5xx响应抛出异常,默认情况下超时时间短符合PSR-7 未来的...

    php-sdk:用于连接到MultiSafepay REST API的默认PHP库

    MultiSafepay PHP SDK关于...如果您没有安装任何客户端实现,请使用以下命令: composer require guzzlehttp/guzzle如果您没有安装任何工厂实现,请使用以下命令: composer require http-interop/http-factory-guzz

Global site tag (gtag.js) - Google Analytics