?? abstractoperation.java
字號:
package console;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author Allan(劉新福)
* @version 1.0
*/
public abstract class AbstractOperation implements Operation {
protected String serverIP;
protected String serverPort;
protected String databaseName;
protected String userName;
protected String password;
protected int isolation;
public AbstractOperation(String serverIP, String serverPort,
String databaseName, String userName, String password) {
this(serverIP, serverPort, databaseName, userName, password,
DEFAULT_TRANSACTION_ISOLATION);
}
public AbstractOperation(String serverIP, String serverPort,
String databaseName, String userName, String password, int isolation) {
this.serverIP = serverIP;
this.serverPort = serverPort;
this.databaseName = databaseName;
this.userName = userName;
this.password = password;
this.isolation = isolation;
init();
}
protected void init() {
try {
getConnection().setTransactionIsolation(isolation);
getConnection().setAutoCommit(false);
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
@Override
public void execute(String sql) throws Exception {
Statement st = null;
ResultSet rs = null;
try {
st = getConnection().createStatement();
boolean isQuery = st.execute(sql);
if (isQuery) {
rs = st.getResultSet();
handleQueryResult(rs);
} else {
handleUpdateResult(st);
}
} catch (Exception e) {
throw e;
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
}
}
}
}
@Override
public void handleUpdateResult(Statement st) throws Exception {
int rowCount = st.getUpdateCount();
if (rowCount >= 0) {
System.out.println(rowCount + " row(s) affected.");
}
}
@Override
public void handleQueryResult(ResultSet rs) throws Exception {
ResultSetMetaData rsmd = rs.getMetaData();
int index = 1;
while (rs.next()) {
index++;
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
String colName = rsmd.getColumnLabel(i);
String colValue = rs.getString(colName);
if (i != 1) {
System.out.print(" , ");
}
System.out.print(colName + "=" + colValue);
}
System.out.println();
}
System.out.println((index - 1) + " Record(s) Found.");
}
@Override
public void release() {
try {
getConnection().close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public String getTransactionIsolation() {
String isolationString;
switch (isolation) {
case 1:
isolationString = "READ_UNCOMMITTED";
break;
case 2:
isolationString = "READ_COMMITTED";
break;
case 4:
isolationString = "REPEATABLE READ";
break;
case 8:
isolationString = "SERIALIZABLE";
break;
default:
isolationString = "UNKNOWN";
break;
}
return isolationString;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -