一、项目用的是R语言,中间有用jdbc连接数据的步骤,数据库为Td数据库,本来用到了TeradataR的包,最后还是统一用了jdbc自带的方法来接收返回值和执行查询语句。
首先加载RJDBC包:
指令:library(RJDBC)
①连接方式:jdbc()、dbConnect()
函数jdbc(驱动,地址)得到驱动
函数dbConnect(驱动,ip地址/数据库名,登录名,登录密码)得到连接
②方法:dbSendQuery
dbSendQuery(mls_conn,sql_text),第一个参数是连接名字,第二个参数为增、删、改的语句
③方法:dbGetQuery
t_result <- dbGetQuery(mls_conn,sql_text)
第一个参数是连接名字,第二个是查语句。
④方法:dbDisconnect()关闭连接
dbDisconnect(mls_conn)
二、本项目的代码为:
############################################# 读取环境变量并将其设置为当前目录
print("step 1: set current directory")
v_mlshome <- Sys.getenv("MLS_HOME")
setwd(v_mlshome)
############################################# 读取数据库连接信息
print("step 2: read db link info")
inifile <- read.table("dbconf.ini")
# 依次读取IP,用户,密码
in_host <- as.character(inifile[2,1])
in_user <- as.character(inifile[3,1])
in_pass <- as.character(inifile[4,1])
############################################# 数据库连接
print("step 3: connect to db")
library(RJDBC)
mls_drv <- JDBC("com.teradata.jdbc.TeraDriver","./lib/terajdbc4.jar")#加载驱动,第一个参数是驱动名称,第二个参数是驱动地址
mls_drv <- JDBC("com.teradata.jdbc.TeraDriver","./lib/tdgssconfig.jar")#加载驱动,第一个参数是驱动名称,第二个参数是驱动地址
mls_conn <-dbConnect(mls_drv,paste0("jdbc:teradata://",in_host,"/CLIENT_CHARSET=EUC_CN,TMODE=TERA,
CHARSET=ASCII"),in_user,in_pass)
#############################################