3. 配置guzz.xml

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属性反射获取类型。

你可能感兴趣的:(sql,xml,orm,ibatis,SQL Server)