`
bean-woo
  • 浏览: 131427 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

配置guzz.xml

    博客分类:
  • Guzz
阅读更多

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

guzz.xml样本

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE guzz-configs PUBLIC "-//GUZZ//DTD MAIN CONFIG//EN" "http://guzz.xiu666.com/dtd/guzz.dtd">  
  3.   
  4. <guzz-configs>  
  5.   
  6.     <config-server>  
  7.         <server class="org.guzz.config.LocalFileConfigServer">  
  8.             <param name="resource" value="guzz_app.properties" />  
  9.         </server>  
  10.     </config-server>  
  11.   
  12.     <dialect class="org.guzz.dialect.H2Dialect" />  
  13.   
  14.     <tran>  
  15.         <dbgroup name="default" masterDBConfigName="masterDB"  />  
  16.         <dbgroup name="updateDB" masterDBConfigName="updateMasterDB" />  
  17.         <dbgroup name="logDB" masterDBConfigName="updateMasterDB" />  
  18.     </tran>  
  19.   
  20.     <business name="guzzSlowUpdate" dbgroup="updateDB" file="classpath:org/guzz/service/core/IncUpdateBusiness.hbm.xml" />  
  21.     <business name="user" file="classpath:org/guzz/test/User.hbm.xml" />  
  22.     <business name="article" file="classpath:org/guzz/test/Article.hbm.xml" />  
  23.     <business name="articleCount" file="classpath:org/guzz/test/ArticleCount.hbm.xml" />  
  24.   
  25.         <business dbgroup="updateDB" name="guzzSlowUpdate" file="classpath:org/guzz/service/core/impl/IncUpdateBusiness.hbm.xml" />  
  26.     <business dbgroup="logDB" name="systemLog" file="classpath:com/mycompany/myapp/business/SystemLog.hbm.xml" />  
  27.   
  28.         <service name="logService" configName="guzzDBLogServiceClient" class="org.guzz.service.log.impl.DBLogServiceImpl" />  
  29.     <service name="slowUpdateServer" configName="guzzSlowUpdateServer" class="org.guzz.service.db.impl.SlowUpdateServerImpl" />  
  30.   
  31.     <sqlMap dbgroup="user">  
  32.         <select id="selectUser" orm="user">  
  33.             select * from @@user where @id = :id  
  34.         </select>  
  35.   
  36.         <update id="updateUserFavCount" orm="userObjectMap">  
  37.             update @@user set @favCountfavCount = favCount + 1  
  38.         </update>  
  39.   
  40.         <select id="selectUsers" orm="userObjectMap">  
  41.             select @id, @name, @vip, @favCount from @@user  
  42.         </select>  
  43.   
  44.         <orm id="userObjectMap" class="org.guzz.test.UserModel" dbgroup="user">  
  45.                 <result property="id" column="pk" type="int" />  
  46.                         <result property="name" column="userName"/>  
  47.             <result property="favCount" column="FAV_COUNT"/>  
  48.             <result property="vip" column="VIP_USER"/>  
  49.            </orm>  
  50.     </sqlMap>  
  51.   
  52. </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属性反射获取类型。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics