`
raodun
  • 浏览: 54122 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

grails笔记------Controller中直接使用SQL语句

阅读更多
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版:

            import org.apache.commons.dbcp.BasicDataSource
            beans = {
               dataSource(BasicDataSource) {
                driverClassName = "org.hsqldb.jdbcDriver"
               url = "jdbc:hsqldb:mem:devDB"
               username = "sa"
               password = ""
              }
   xml版:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="dataSource" class=" org.apache.commons.dbcp.BasicDataSource ">
     <property name="driverClassName">    <value>org.hsqldb.jdbcDriver</value></property>
     <property name="url">    <value>jdbc:hsqldb:hsql://localhost</value></property>
     <property name="username">    <value>sa</value></property>
     <property name="password">    <value></value></property>
</bean>
</beans>

      c.在Controller中定义dataSource,代码如下:

             def dataSource

2.获取连接,代码如下:

    def conn = dataSource.getConnection()

3.执行sql语句,代码如下:

      PreparedStatement ps = conn.prepareStatement("select * from customer");
        ResultSet rs = ps.executeQuery();

        while (rs.next()) {

         println rs.getString("cus_name")

         }

   ok!这样就搞定了.
分享到:
评论

相关推荐

    grails-fck-editor-0.3.zip_grails_grails-fck-editor

    标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-editor"表明这是一个与Grails框架相关的插件,具体来说是FCKeditor的一个版本。FCKeditor是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑...

    grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip

    在描述中提到的"prestige.zip"可能是一个相关的项目或者示例代码库,它展示了如何在Android环境中实现Model-View-Controller(MVC)模式。在Android开发中,MVC模式是一种常见设计模式,用于分离应用程序的业务逻辑...

    grails-doc-CN-1.0.rar

    `grails-doc-CN-1.0.rar` 文件包含的是 Grails 1.0 版本的中文参考文档,对于那些不熟悉英文文档或者想要深入了解 Grails 的中文用户来说,这是一个极其宝贵的资源。 文档主要涵盖以下几个关键知识点: 1. **...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    2. MVC架构:Grails遵循Model-View-Controller(MVC)设计模式,通过GORM(Grails Object Relational Mapping)进行数据访问,使用GSP(Groovy Server Pages)作为视图模板,Controller负责业务逻辑处理。...

    The Grails Framework - Reference Documentation

    - **验证安装**:在命令行中输入`grails`命令,如果出现Grails的帮助信息,则表示安装成功。 ##### 2.2 升级至最新版本 - **备份旧项目**:在升级前务必做好项目备份。 - **下载新版本**:访问官网下载最新版本。 -...

    grails-acegi-0.5.zip

    4. `docs`、`grails-app`、`src`、`scripts`和`lib`目录则分别包含了插件的文档、应用代码、源代码、脚本以及依赖的库文件。 Grails Acegi 0.5插件提供了以下主要功能: - **用户认证**:支持多种认证机制,如...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2 共两个包,解压后需要将扩展名.zip.bak改名为.zip重新解压。 http://dist.springsource.com/release/STS/3.8.1.RELEASE/dist/ e4.6/spring-tool-...

    Grails-2.4.4-用户手册

    2. **创建新项目**:通过`grails create-app`命令创建项目,理解`grails-app`目录结构。 3. **编写Domain Class**:学习如何定义领域类,包括关系映射和验证规则。 4. **创建Controller**:了解如何创建控制器,处理...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1 共两个压缩包,解压后将扩展名.zip.bak改为.zip再次解压。

    grails-web-url-mappings-2.5.4.zip

    在Grails 2.5.4中,这一功能被封装在`grails-web-url-mappings`模块中。 首先,URL映射的配置文件通常位于`grails-app/conf/UrlMappings.groovy`。在这个文件中,开发者可以定义一系列规则来处理不同的URL模式。...

    Grails1.3.7-doc

    - **Controllers and Views**:Grails遵循MVC(Model-View-Controller)设计模式,Controller处理请求,View负责渲染响应,两者之间的交互是Grails应用的核心部分。 - **Builders**:如GSP(Grails Server Pages)...

    grails-docs-1.0.3

    grails参考文档 The Grails Framework - Reference Documentation Authors: Graeme Rocher, Marc Palmer Version: 1.0.3

    grails-3.0.5-ga (2/2)

    综上所述,"grails-3.0.5-ga (2/2)"是一个包含Grails框架核心特性和改进的版本,适用于那些无法直接下载的开发者。通过了解和使用这些知识点,开发者可以更高效地构建基于Grails的现代Web应用。

    grails-bin-1.1

    使用Grails 1.1.1,开发者可以利用其MVC(Model-View-Controller)架构模式快速构建Web应用。Grails的GORM(Grails Object-Relational Mapping)提供了对数据库操作的支持,而GSP(Grails Server Pages)是视图层的...

    grails-datastore-gorm-tck-1.0.9.RELEASE.zip

    标题 "grails-datastore-gorm-tck-1.0.9.RELEASE.zip" 提供的信息表明,这是一个与Grails框架相关的数据存储(Datastore)和GORM(Grails Object Relational Mapping)测试兼容性工具包(Test Compatibility Kit,...

    grails-doc-1.0-beta1-中文.rar

    grails-doc-1.0-beta1-中文.rar。Grails 1.0 学习资料。

    Getting-Started-with-Grails-Chinese

    Grails 采用了 Model-View-Controller (MVC) 架构模式,与 Spring Framework 深度集成,同时借鉴了 Ruby on Rails 的许多最佳实践和设计原则。通过使用 Grails,开发者可以快速构建高质量、可扩展的 web 应用程序。 ...

    grails3.2.8-01

    grails3.2.8 part1

    grails-getting-started

    - **创建新项目**:使用`grails create-app myApp`命令创建一个新的Grails应用。 - **项目结构**:Grails采用了清晰的目录结构,主要包括src、test等目录,其中src目录下包含了应用程序的主要代码。 - **运行应用**...

Global site tag (gtag.js) - Google Analytics