代码拉取完成,页面将自动刷新
// EXEC: cjc %import-path %L %l %f
// EXEC: ./main
from std import database.sql.*
from std import time.*
import export.*
// from net import tls.TlsSocket
main() {
println()
println()
// DriverUtil.register()
// let driver = DriverManager.getDriver("mysql")
// let opts = [
// (SqlOption.Username, "root"),
// (SqlOption.Password, "....")
// ]
// let ds = driver.getOrThrow().open("cjdbc:mysql://127.0.0.1:3072/dbtest", opts)
// let conn = ds.connect()
// let stmt = conn.prepareStatement("select * from test where time1 = ?")
/*************************扩展接口**********************/
try (conn = DriverManager.getConnection("cjdbc:mysql://127.0.0.1:3306", "root", "....")) {
let stmt = conn.createStatement()
stmt.execute("use dbtest;")
let r = stmt.executeQuery("show tables;")
let columns = r.getColumnInfo()
while (r.next()) {
for (i in 0..columns.size) {
print("${columns[i].name} = ${r.getString(columns[i].name)}")
}
println()
}
stmt.close()
conn.close()
} catch (e: Exception) {
println(e)
}
/********************事务***********************************************/
// try (conn = DriverUtil.getConnection("cjdbc:mysql://127.0.0.1:3072/dbtest", "root", "....")) {
// conn.setAutoCommit(false)
// let stmt = conn.createStatement()
// try {
// stmt.execute("insert into test (name) values ('test')")
// var b = stmt.execute("insert into test (name) values ('test')")
// println(stmt.getUpdateCount())
// stmt.execute("insert into test (name) values ('这是一条测试消息')")
// // 没有错误提交
// conn.commit()
// stmt.close()
// conn.close()
// } catch (e: SqlException) {
// 有错误回滚防止阻塞
// conn.rollback()
// }
// } catch (e: Exception) {
// println(e)
// }
return 0
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。