`
lijunaccp
  • 浏览: 160444 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

grails中不经过Domain调用SQL

阅读更多
第一步:
在grails工程中打开grails-app\conf\Config.groovy文件,在文件的最后加上如下代码:
gsql_connector {
c_url="jdbc:mysql://localhost:3306/snmp?useUnicode=true&characterEncoding=UTF-8"
username="root"
password="root"
driverClas="com.mysql.jdbc.Driver"
}
注:
c_url:连接数据库的URL
username:连接数据库的用户名
password:连接数据库的密码
driverClas:连接数据库的驱动类
记得把mysql数据库驱动jar包放到工程的lib中
第二点:
写一个MysqlConnectService.groovy类,内容如下:
package com.test

import groovy.sql.Sql
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH

class MysqlConnectService {

boolean transactional = false

def serviceMethod() {
}

def getSql(){
return Sql.newInstance(CH.config.gsql_connector.c_url, CH.config.gsql_connector.username, CH.config.gsql_connector.password, CH.config.gsql_connector.driverClas)
}

def getSqlTopo(){
return Sql.newInstance(CH.config.gsql_connector.c_url, CH.config.gsql_connector.username, CH.config.gsql_connector.password, CH.config.gsql_connector.driverClas)
}

def getSql2(){
return Sql.newInstance(CH.config.gsql_connector.c_url, CH.config.gsql_connector.username, CH.config.gsql_connector.password, CH.config.gsql_connector.driverClas)
}

def getSqlbnmsdb(){
return Sql.newInstance(CH.config.gsql_connector.c_url, CH.config.gsql_connector.username, CH.config.gsql_connector.password, CH.config.gsql_connector.driverClas)
}
}
第三步:在业务逻辑类中,实例化com.test.MysqlConnectService 类,并定义一个获得数据库连接的方法:
def mysqlConnectService
/**
* 获得SQL连接对象
* @return SQL连接对象
*/
def getSql(){
   return mysqlConnectService.getSql()
}
第四步:在业务逻辑类中定义一个查询方法:
//读取多行
def findAllStudent(){
    def sqlConn=getSql()
    String sql="select * from Students"
    sqlConn.eachRow(sql,{
println it
    })
}
//读取单行
def findStudentById(int id){
    def sqlConn=getSql()
    String sql="select * from Students where id=?"
    def firstRow=sqlConn.firstRow(sql,[id])
    println firstRow.name
}
注:
SqlConn方法中的参数有三个,第一个是SQL语句,第二个是SQL占位符值,第三个是闭包(firstRow方法不需要)
这样就可以不通过Domain获得数据库中的数据了。
分享到:
评论

相关推荐

    grails 中文第二版

    - Grails版本信息可以在项目的`BuildConfig.groovy`文件中找到。 **文档引擎** - 提供了文档生成工具,帮助开发者快速生成API文档。 **依赖解析** - Grails使用Ivy作为其依赖管理系统。 - 支持配置依赖关系,包括...

    Grails权威指南.pdf

    - **Domain Classes**:Grails中的领域类定义了数据库表结构,通过GORM自动创建表和字段。 - **Relationships**:支持一对一、一对多、多对多等关系映射,例如belongsTo、hasMany、hasOne等。 - **Criteria API**...

    the definitive guide to grails 2

    在Grails框架中,域模型(Domain Classes)是用于表示业务实体的对象,它们通常映射到数据库中的表。通过GORM(Grails Object Relational Mapping),Grails提供了自动的ORM支持,使得开发者无需编写复杂的SQL语句...

    Grails案例

    - Domain Classes:在Grails中,我们使用Domain Classes来定义数据模型。这些类是Groovy类,包含了属性和方法,它们自动与数据库表关联。 - GORM注解:我们可以使用注解如`@Entity`、`@Table`等来自定义数据表的...

    grails框架数据查询

    - **Domain Classes**: Grails中的领域类是映射到数据库表的Groovy类,通过注解或配置来定义表结构。 - **CRUD操作**: GORM支持创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)等基本数据库操作。 - **...

    Grails权威指南

    第4章 grails中的域(domain)  4.1 简化的orm和grails对象关系映射(gorm)  4.2 gorm基础  4.3 设置属性可选  4.4 gorm中的关系  4.5 执行crud操作  4.5.1 创建书签  4.5.2 读取书签...

    Grails1.1中文文档.zip

    通过Domain Classes,开发者可以使用面向对象的方式定义数据模型,GORM会自动处理SQL查询和事务管理。 4. **Controllers与Actions**:Grails Controller是处理HTTP请求的核心组件,每个Controller可以包含多个...

    Grails开发的通讯录

    1. **Domain Classes**:在Grails中,领域模型是业务逻辑的核心,代表了应用程序中的实体。在通讯录系统中,我们可以定义一个`Contact`领域类,包含姓名、电话、邮箱等属性,以及相应的操作方法。 2. **GORM...

    HelloGrails:通过使用 Grails 2 开发 TekDays.com 来学习和完善 Grails 技能

    GORM提供了对关系数据库的便捷操作,允许开发者以Groovy语法进行CRUD(创建、读取、更新、删除)操作,减少了与SQL打交道的繁琐。 在创建控制器时,Grails的拦截器(Filters)机制可以帮助我们实现通用的逻辑,如...

    grailsQueryForProjections.rar_Java编程_Java_

    2. **聚合函数**:在Grails中,使用GORM可以方便地调用SQL的聚合函数,如`count()`,`sum()`,`avg()`等。例如,要获取某个表的总条数,可以使用`DomainClass.countByCondition()`,这里的`condition`是拼接好的查询...

    java架构图示

    根据给定的信息,本文将对Java相关的架构图进行详细的解读与分析,主要涵盖Spring、Hibernate、Struts(包括Struts1和Struts2)、JSF、Seam、Grails、DWR、J2EE、Oracle等技术栈的核心概念及其架构特点。 ### 1. ...

Global site tag (gtag.js) - Google Analytics