在Ofbiz中使用源生sql

本文介绍了如何在Ofbiz框架中通过delegator类进行数据库操作,并在特定情况下使用源生SQL来满足更具体的需求。通过解析entityengine.xml文件,了解如何获取groupHelperName并实现数据库连接,最终执行SQL语句完成指定任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Ofbiz中我们使用delegator 这个类对数据库进行操作,

这个类在绝大多数方面都可以满足我们的需求,

但是在一些特殊的地方,我们还是很怀念源生的sql。

下面介绍的方法就是在ofbiz中使用源生sql:

//使用源生的JDBC方式
String sql = "update product t set t.whether_sale='Y' "
		+"where t.product_store_id="+productStoreId;
//获得gropuHelperName
//这个org.ofbiz是写在entityengine.xml的文件中的
String groupHelperName = delegator.getGroupHelperName("org.ofbiz");
//获得数据库的连接
Connection conn = ConnectionFactory.getConnection(groupHelperName);
//获得Statement
Statement stmt = conn.createStatement();
//执行sql 将商品是否可购买状态设置为N
tmt.executeUpdate(sql);
//end

我们来看下entityengine.xml文件。

<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
        <!-- <group-map group-name="org.ofbiz" datasource-name="localderby"/>
        <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
        <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/> -->
        
        <!-- <group-map group-name="org.ofbiz" 		datasource-name="localmysql"/>
        <group-map group-name="org.ofbiz.olap" 		datasource-name="localmysqlolap"/>
        <group-map group-name="org.ofbiz.tenant" 	datasource-name="localmysqltenant"/> -->
        
        <group-map group-name="org.ofbiz" 			datasource-name="localoracle"/>
        <group-map group-name="org.ofbiz.olap" 		datasource-name="localoracle"/>
        <group-map group-name="org.ofbiz.tenant" 	datasource-name="localoracle"/>
        
        <!-- <group-map group-name="org.ofbiz" 		datasource-name="localpostnew"/>
        <group-map group-name="org.ofbiz.olap" 		datasource-name="localpostolap"/>
        <group-map group-name="org.ofbiz.tenant" 	datasource-name="localposttenant"/> -->
</delegator>

这个xml文件中的group-name就可以帮助我们获得到groupHelperName。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值