Oracle Plugin

This commit is contained in:
rzs840707 2014-09-19 15:52:31 +08:00
parent d186075beb
commit 1ae434014f
1 changed files with 174 additions and 0 deletions

View File

@ -0,0 +1,174 @@
package org.bench4q.agent.plugin.basic.Oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import org.bench4q.agent.plugin.Constructor;
import org.bench4q.agent.plugin.Parameter;
import org.bench4q.agent.plugin.Plugin;
import org.bench4q.agent.plugin.behavior.Behavior;
import org.bench4q.agent.plugin.behavior.BehaviorType;
import org.bench4q.agent.utils.Type.SupportTypes;
@Plugin("Oracle")
public class OracleDBPlugin {
private final String hostName;
private final String port;
private final String dbName;
private final String username;
private final String password;
private final String tableUnderTest = "USERS";
@Constructor
public OracleDBPlugin(
@Parameter(value = "hostName", type = SupportTypes.Field) String hostName,
@Parameter(value = "port", type = SupportTypes.Field) String port,
@Parameter(value = "dbName", type = SupportTypes.Field) String dbName,
@Parameter(value = "username", type = SupportTypes.Field) String username,
@Parameter(value = "password", type = SupportTypes.Field) String password)
{
this.hostName = hostName;
this.port = port;
this.dbName = dbName;
this.username = username;
this.password = password;
}
@Behavior(value = "Insert", type = BehaviorType.USER_BEHAVIOR)
public OracleDBReturn insert(
@Parameter(value = "key", type = SupportTypes.Field) String key,
@Parameter(value = "value", type = SupportTypes.Field) String value)
{
Connection conn = null;
Statement stmt = null;
//connection construct and keep until closed£¬ to obtain more effective performance
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@" + hostName + ":" + port + ":" + dbName;
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
String sql = "INSERT INTO USERS(KEY1, VALUE1) VALUES('" + key + "','" + value + "')";
stmt.execute(sql);
return new OracleDBReturn(true);
} catch (SQLException e) {
e.printStackTrace();
return new OracleDBReturn(false);
} catch(Exception ex){
ex.printStackTrace();
return new OracleDBReturn(false);
} finally{
try {
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Behavior(value = "Query", type = BehaviorType.USER_BEHAVIOR)
public OracleDBReturn query(@Parameter(value = "key", type = SupportTypes.Field) String key){
Connection conn = null;
Statement stmt = null;
ResultSet result = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@" + hostName + ":" + port + ":" + dbName;
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
String sql = "SELECT * FROM " + tableUnderTest + " WHERE KEY1 = '" + key + "'";
result = stmt.executeQuery(sql);
while(result.next()){
System.out.println("Users info : key1 = " + result.getString(1) + " value1 = " + result.getString(2));
}
return new OracleDBReturn(true);
} catch (SQLException e) {
e.printStackTrace();
return new OracleDBReturn(false);
} catch (Exception ex) {
ex.printStackTrace();
return new OracleDBReturn(false);
} finally{
try {
if(result != null){
result.close();
}
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Behavior(value = "QueryAll", type = BehaviorType.USER_BEHAVIOR)
public OracleDBReturn queryAll(){
Connection conn = null;
Statement stmt = null;
ResultSet result = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@" + hostName + ":" + port + ":" + dbName;
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
String sql = "SELECT * FROM " + tableUnderTest;
result = stmt.executeQuery(sql);
int total = 0;
while(result.next()){
System.out.println("Users info : key1 = " + result.getString(1) + " value1 = " + result.getString(2));
total++;
}
System.out.println("the total records num : " + total);
return new OracleDBReturn(true);
} catch (SQLException e) {
e.printStackTrace();
return new OracleDBReturn(false);
} catch (Exception ex) {
ex.printStackTrace();
return new OracleDBReturn(false);
} finally{
try {
if(result != null){
result.close();
}
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}