跳到主要内容

JDBC MySQL函数

说明

  • jdbc模块函数主要是用于操作MYSQL或者ORACLE等数据库
  • jdbc模块的对象前缀是jdbc,例如 jdbc.init()这样调用
  • jdbc模块支持的mysql版本为5.x,不支持8.0+版本

jdbc.init 初始化JDBC链接

  • 初始化JDBC链接
  • @param jdbcDriver JDBC得驱动,mysql填写: com.mysql.jdbc.Driver
  • @param dbUrl JDBC链接得URL,例如 jdbc:mysql://{ip}: {port}/{db}?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
  • @param user 数据库用户名
  • @param password 数据库密码
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
//!!![提醒沙雕]!!!总有沙雕把ip填成127.0.0.1或localhost导致连接失败,127是本机,本机是手机,不是你写代码的电脑,ip要填电脑的局域网ip!!!
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);
let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}
//查询语句
let q = "Select * from table1 where id=1"
let qur = jdbc.query(q, 60)
logd(qur);
jdbc.connectionClose()
}

main();

jdbc.getLastError 获取最近的错误

  • 获取最近的错误
  • @return {string} 错误字符串,null 代表没错误

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);
let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}
//查询语句
let q = "Select * from table1 where id=1"
let qur = jdbc.query(q, 60)
logd(qur);
jdbc.connectionClose()
}

main();

jdbc.connect 链接数据库

  • 链接数据库,该方法在init函数执行后调用
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);
//链接数据库
let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}
//查询语句
let q = "Select * from table1 where id=1"
let qur = jdbc.query(q, 60)
logd(qur);
jdbc.connectionClose()
}

main();

jdbc.query 查询数据

  • 查询数据
  • @param sql sql语句
  • @param timeout 超时,单位是秒
  • @return JSON | 数据集合对象

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);
let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}
//查询语句
let q = "select * from table1 where id=1"
let qur = jdbc.query(q, 60)
logd(qur);
jdbc.connectionClose()
}

main();

jdbc.createPreparedStatement 创建一个预处理SQL语

  • 创建一个预处理SQL语句
  • @param sql 预处理语句
  • @param timeout 超时,单位是秒
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.connectionClose()
}

main();

jdbc.psqlQuery 执行预处理语句

  • 执行之前创建得预处理语句
  • @return {string} JSON字符串

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.connectionClose()
}

main();

jdbc.psqlSetString 设置字符串参数

  • 预处理语句设置字符串条件参数
  • @param index 条件索引
  • @param input 字符串
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.connectionClose()
}

main();

jdbc.psqlSetLong 设置long条件参数

  • 预处理语句设置long条件参数
  • @param index 条件索引
  • @param input long数据
  • @return {bool} true 代表成功 false 代表失败

function main() {
jdbc.psqlSetLong(1, 1000);
}

main();

jdbc.psqlSetInt 设置int条件参数

  • @param index 条件索引
  • @param input int数据
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.connectionClose()
}

main();

jdbc.psqlSetFloat 设置float条件参数

  • 预处理语句设置float条件参数
  • @param index 条件索引
  • @param input float数据
  • @return {bool} true 代表成功 false 代表失败

function main() {
jdbc.psqlSetFloat(1, 1.0)
}

main();

jdbc.psqlSetBoolean 设置boolean条件参数

  • 设置boolean条件参数
  • @param index 条件索引
  • @param input boolean数据
  • @return {bool} true 代表成功 false 代表失败

function main() {
jdbc.psqlSetBoolean(1, true)
}

main();

jdbc.psqlSetDate 设置日期条件参数

  • 预处理语句设置日期条件参数
  • @param index 条件索引
  • @param dataFormat 日期格式,例如 yyyy-MM-dd
  • @param input 日期字符串
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置日期
jdbc.psqlSetDate(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.connectionClose()
}

main();

jdbc.psqlSetTimestamp 设置时间戳条件参数

  • 预处理语句设置时间戳条件参数
  • @param index 条件索引
  • @param dataFormat 日期格式,例如 yyyy-MM-dd
  • @param input 日期字符串
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.psqlClose()
jdbc.connectionClose()
}

main();

jdbc.psqlAddBatch 批量提交

  • 是否设定为批量提交
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}


//插入数据
let q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
let qur = jdbc.createPreparedStatement(q, 60)


if (qur) {

for (var i = 0; i < 10; i++) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
r = jdbc.psqlAddBatch()
if (!r) {
logd(jdbc.getLastError());
}
}
}

rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.psqlClose()
jdbc.connectionClose()

}

main();

jdbc.psqlExecuteUpdate 执行更新操作

  • 执行更新操作
  • @return {int} 更新影响到行数量

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//更新数据
let q = "update table1 set uname=?,ucontent=?,create_time=? where id=?;"
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
//设置id
jdbc.psqlSetInt(4, 1)
}
let rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.psqlClose()
jdbc.connectionClose()
}

main();

jdbc.psqlClose 结束预处理语句

  • 结束预处理语句
  • @return {bool} true 代表成功 false 代表失败

function main() {
jdbc.psqlClose()
}

main();

jdbc.connectionClose 关闭数据库链接

  • 关闭数据库链接
  • @return {bool} true 代表成功 false 代表失败

function main() {
//mysql 的地址 ip:端口/数据库名
let mysqlUrl = "jdbc:mysql://192.168.0.3:3306/test?characterEncoding=utf8&autoReconnect=true"
let inited = jdbc.init("com.mysql.jdbc.Driver", mysqlUrl, "root", "root123456");
logd("inited " + inited);

let conn = jdbc.connect()
logd("connect " + conn);
if (!conn) {
logd(jdbc.getLastError());
exit()
}

//查询语句
let q = "select * from table1 where id=? or uname=?"
//创建一个查询
let qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetInt(1, 1)
//设置第二个索引参数
jdbc.psqlSetString(2, 'test')

}
//预处理查询
let data = jdbc.psqlQuery()
logd(data);

//关闭预处理语句
jdbc.psqlClose()

//插入数据
q = "insert table1(`uname`,`ucontent`,`create_time`)values(?,?,?);"
qur = jdbc.createPreparedStatement(q, 60)
if (qur) {
//设置第一个索引的参数
jdbc.psqlSetString(1, "我是名称")
//设置第二个索引参数
jdbc.psqlSetString(2, '我是内容')
//设置时间戳
jdbc.psqlSetTimestamp(3, "yyyy-MM-dd hh:mm:ss", "2020-10-02 12:02:11")
}
rowcount = jdbc.psqlExecuteUpdate();
logi("插入语句执行影响行数 -" + rowcount);
if (rowcount <= 0) {
loge("插入错误: " + jdbc.getLastError())
}
jdbc.psqlClose()
jdbc.connectionClose()
}

main();