在 Katalon Studio 中连接到 Oracle SQL
Posted
技术标签:
【中文标题】在 Katalon Studio 中连接到 Oracle SQL【英文标题】:Connect to Oracle SQL in Katalon Studio 【发布时间】:2018-03-12 14:33:28 【问题描述】:我尝试使用下面的 Groovy 脚本连接到 Oracle SQL
数据库:
def connectDB(String dataFile)
//Load driver class for your specific database type
Class.forName("oracle.jdbc.driver.OracleDriver")
String connectionString = "jdbc:sqlite:" + dataFile
if(connection != null && !connection.isClosed())
connection.close()
connection = DriverManager.getConnection(connectionString)
return connection
连接字符串中有 sqlite,但不确定我应该在那里使用哪个值。 (我也试过jdbc:oracle
。)
我使用以下类建立数据库连接。
public class sqlconnect
private static Connection connection = null;
/**
* Open and return a connection to database
* @param dataFile absolute file path
* @return an instance of java.sql.Connection
*/
@Keyword
def connectDB(String dataFile)
//Load driver class for your specific database type
Class.forName("oracle.jdbc.driver.OracleDriver")
String connectionString = "jdbc:sqlite:" + dataFile
if(connection != null && !connection.isClosed())
connection.close()
connection = DriverManager.getConnection(connectionString)
return connection
/**
* execute a SQL query on database
* @param queryString SQL query string
* @return a reference to returned data collection, an instance of java.sql.ResultSet
*/
@Keyword
def executeQuery(String queryString)
Statement stm = connection.createStatement()
ResultSet rs = stm.executeQuery(queryString)
return rs
@Keyword
def closeDatabaseConnection()
if(connection != null && !connection.isClosed())
connection.close()
connection = null
/**
* Execute non-query (usually INSERT/UPDATE/DELETE/COUNT/SUM...) on database
* @param queryString a SQL statement
* @return single value result of SQL statement
*/
@Keyword
def execute(String queryString)
Statement stm = connection.createStatement()
boolean result = stm.execute(queryString)
return result
我已经在 Katalon Studio 的Project > Settings > Database
下设置了数据库信息。
我使用 CustomKeyword connectDB()
和 executeQuery()
方法从测试用例中调用。
更新:
我更新了connectDB()
方法Groovy
脚本:
def connectDB()
Class.forName("oracle.jdbc.driver.OracleDriver")
//String connectionString = "jdbc:oracle:thin:username/password@ipaddress:port/servicename"
if(connection != null && !connection.isClosed())
connection.close()
connection = DriverManager.getConnection("jdbc:oracle:thin:username/password@ipaddress:port/servicename", "username", "password")
return connection
我尝试使用变量connectionString
作为DriverManager.getConnection()
方法的参数,但在两种情况下我都收到相同的错误消息。
无法使用类强制转换对象“oracle.jdbc.driver.T4CConnection@” 'oracle.jdbc.driver.T4CConnection' 到类 'com.mysql.jdbc.Connection'
【问题讨论】:
连接字符串的格式为jdbc:oracle:<drivertype>:@<database>
(例如jdbc:oracle:thin:@host:1521:xe
)。 Learn more about connection strings...
@JuanMellado :我修复了这个字符串。我在 GUI 上收到 Connection succcesful!
消息,但在调用 connectDB()
方法时收到 java.sql.SQLException: ORA-01017: invalid username/password; logon denied
错误消息。
您可以在调用时传递用户名和密码:DriverManager.getConnection ("<connection string>", "<user>", "<password>");
,或在连接字符串中传递:jdbc:oracle:<drivertype>:<user>/<password>@<database>
最新编辑中的问题只是意味着您导入了com.mysql.jdbc.Connection
(这是一个MySQL类)而不是JDBC接口java.sql.Connection
。修复你的导入。
@MarkRotteveel:谢谢,这个问题已经解决了。
【参考方案1】:
连接字符串的格式是jdbc:oracle:<drivertype>:@<database>
(例如jdbc:oracle:thin:@host:1521:xe
)。
您可以在调用时传递用户名和密码:DriverManager.getConnection("<connection string>", "<user>", "<password>");
,甚至可以在连接字符串中传递:jdbc:oracle:<drivertype>:<user>/<password>@<database>
(例如jdbc:oracle:thin:scott/tiger@host:1521:xe
)。
你应该学习more about connection strings.
【讨论】:
我更新了连接字符串,但是得到了错误信息:Cannot cast object 'oracle.jdbc.driver.T4CConnection@' with class 'oracle.jdbc.driver.T4CConnection' to class 'com.mysql.jdbc.Connection'
我使用端口号和服务名来连接数据库。
你试过用用户名和密码作为参数调用DriverManager.getConnection
吗?
我的connectionString
命名变量也已经包含用户名和密码。我使用了connection = DriverManager.getConnection("<connection string>", "<user>", "<password>");
格式,但得到了同样的错误信息。
请使用您当前使用的代码更新您的问题。您之前获得了成功的连接,只有用户名/密码错误。但是现在你报错了“com.mysql.jdbc.Connection”(mysql?)。
我用修改后的 connectDB() 方法更新了它。我在执行期间从测试用例中调用它。以上是关于在 Katalon Studio 中连接到 Oracle SQL的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Visual Studio 2019 C# 中连接到 Oracle 数据库