grails的Controller中查询一般可以用 类名.findAll或者 类名.executeQuery()来查询
但是必须使用gql语句,gql与hql语句语法类似,但经我试用有些hql能使用的语法gql不能用,比如多表左右连接,所以我直接用jdbc写了
gql普通关联的语句如:
def xx = Goodsinput.executeQuery("select (sum(i.gooEnter*i.gooEnterprice) - sum(o.gooDepletion*o.gooPrice)) as sumprice from Goodsinput i , Goodsdepletion o where i.gooName = o.gooName and i.shoId ='888888888888' and o.shoId = '888888888888' and i.gooName.id = 'SP1000000229'")
这是一条计算库存商品平均价的gql,经测试成功,但外连接 left outer join on 、 i.gooName = o.gooName(+)都不符合gql语法。
使用JDBC也很简单:
1.使用spring加载dataSource到Controller中。
a.将apache的dbcp包放入grail的lib目录
b.在conf/spring目录下resources中.配置bean:dataSourc
注意:以前是xml的,现在是直接用groovy了
代码如下:
groovy版
但是必须使用gql语句,gql与hql语句语法类似,但经我试用有些hql能使用的语法gql不能用,比如多表左右连接,所以我直接用jdbc写了
gql普通关联的语句如:
def xx = Goodsinput.executeQuery("select (sum(i.gooEnter*i.gooEnterprice) - sum(o.gooDepletion*o.gooPrice)) as sumprice from Goodsinput i , Goodsdepletion o where i.gooName = o.gooName and i.shoId ='888888888888' and o.shoId = '888888888888' and i.gooName.id = 'SP1000000229'")
这是一条计算库存商品平均价的gql,经测试成功,但外连接 left outer join on 、 i.gooName = o.gooName(+)都不符合gql语法。
使用JDBC也很简单:
1.使用spring加载dataSource到Controller中。
a.将apache的dbcp包放入grail的lib目录
b.在conf/spring目录下resources中.配置bean:dataSourc
注意:以前是xml的,现在是直接用groovy了
代码如下:
groovy版