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获得数据库中的数据了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值