grails中不经过Domain调用SQL_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > grails中不经过Domain调用SQL

grails中不经过Domain调用SQL

 2010/9/19 23:19:00  lijunaccp  http://lijunaccp.javaeye.com  我要评论(0)
  • 摘要:第一步:在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
  • 标签: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获得数据库中的数据了。
发表评论
用户名: 匿名