类 DBUtil
- java.lang.Object
-
- risesoft.data.transfer.stream.rdbms.utils.DBUtil
-
public final class DBUtil extends Object
-
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static booleanasyncResultSetNext(ResultSet resultSet)异步获取resultSet的next(),注意,千万不能应用在数据的读取中。static booleanasyncResultSetNext(ResultSet resultSet, int timeout)static booleancheckDeletePrivilege(DataBaseType dataBaseType, String jdbcURL, String userName, String password, List<String> tableList)static booleancheckInsertPrivilege(DataBaseType dataBaseType, String jdbcURL, String userName, String password, List<String> tableList)static StringchooseJdbcUrl(DataBaseType dataBaseType, List<String> jdbcUrls, String username, String password, List<String> preSql, boolean checkSlave)static StringchooseJdbcUrlWithoutRetry(DataBaseType dataBaseType, List<String> jdbcUrls, String username, String password, List<String> preSql, boolean checkSlave)static voidcloseDBResources(ResultSet rs, Statement stmt, Connection conn)static voidcloseDBResources(Statement stmt, Connection conn)static voidcloseResultSet(ResultSet rs)static voiddealWithSessionConfig(Connection conn, Configuration config, DataBaseType databaseType, String message)static voidexecuteSqlWithoutResultSet(Statement stmt, String sql)static org.apache.commons.lang3.tuple.Triple<List<String>,List<Integer>,List<String>>getColumnMetaData(Connection conn, String tableName, String column)获取表元数据static org.apache.commons.lang3.tuple.Triple<List<String>,List<Integer>,List<String>>getColumnMetaData(DataBaseType dataBaseType, String jdbcUrl, String user, String pass, String tableName, String column)static ConnectiongetConnection(DataBaseType dataBaseType, String jdbcUrl, String username, String password)Get direct JDBC connectionstatic ConnectiongetConnection(DataBaseType dataBaseType, String jdbcUrl, String username, String password, String socketTimeout)static ConnectiongetConnectionWithoutRetry(DataBaseType dataBaseType, String jdbcUrl, String username, String password)Get direct JDBC connectionstatic ConnectiongetConnectionWithoutRetry(DataBaseType dataBaseType, String jdbcUrl, String username, String password, String socketTimeout)static List<String>getTableColumns(DataBaseType dataBaseType, String jdbcUrl, String user, String pass, String tableName)static List<String>getTableColumnsByConn(DataBaseType dataBaseType, Connection conn, String tableName, String basicMsg)static booleanhasInsertPrivilege(DataBaseType dataBaseType, String jdbcURL, String userName, String password, List<String> tableList)检查表是否具有insert 权限 insert on *.* 或者 insert on database.* 时验证通过 当insert on database.tableName时,确保tableList中的所有table有insert 权限,验证通过 其它验证都不通过static booleanisOracleMaster(String url, String user, String pass)static voidloadDriverClass(String pluginType, String pluginName)static booleanneedCheckDeletePrivilege(Configuration originalConfig)static ResultSetquery(Connection conn, String sql)static ResultSetquery(Connection conn, String sql, int fetchSize)a wrapped method to execute select-like sql statement .static ResultSetquery(Connection conn, String sql, int fetchSize, int queryTimeout)a wrapped method to execute select-like sql statement .static ResultSetquery(Statement stmt, String sql)a wrapped method to execute select-like sql statement .static voidsqlValid(String sql, DataBaseType dataBaseType)static booleantestConnWithoutRetry(DataBaseType dataBaseType, String url, String user, String pass, boolean checkSlave)static booleantestConnWithoutRetry(DataBaseType dataBaseType, String url, String user, String pass, List<String> preSql)
-
-
-
方法详细资料
-
chooseJdbcUrl
public static String chooseJdbcUrl(DataBaseType dataBaseType, List<String> jdbcUrls, String username, String password, List<String> preSql, boolean checkSlave)
-
chooseJdbcUrlWithoutRetry
public static String chooseJdbcUrlWithoutRetry(DataBaseType dataBaseType, List<String> jdbcUrls, String username, String password, List<String> preSql, boolean checkSlave) throws TransferException
-
hasInsertPrivilege
public static boolean hasInsertPrivilege(DataBaseType dataBaseType, String jdbcURL, String userName, String password, List<String> tableList)
检查表是否具有insert 权限 insert on *.* 或者 insert on database.* 时验证通过 当insert on database.tableName时,确保tableList中的所有table有insert 权限,验证通过 其它验证都不通过
-
checkInsertPrivilege
public static boolean checkInsertPrivilege(DataBaseType dataBaseType, String jdbcURL, String userName, String password, List<String> tableList)
-
checkDeletePrivilege
public static boolean checkDeletePrivilege(DataBaseType dataBaseType, String jdbcURL, String userName, String password, List<String> tableList)
-
needCheckDeletePrivilege
public static boolean needCheckDeletePrivilege(Configuration originalConfig)
-
getConnection
public static Connection getConnection(DataBaseType dataBaseType, String jdbcUrl, String username, String password)
Get direct JDBC connection if connecting failed, try to connect for MAX_TRY_TIMES times NOTE: In DataX, we don't need connection pool in fact
-
getConnection
public static Connection getConnection(DataBaseType dataBaseType, String jdbcUrl, String username, String password, String socketTimeout)
- 参数:
dataBaseType-jdbcUrl-username-password-socketTimeout- 设置socketTimeout,单位ms,String类型- 返回:
-
getConnectionWithoutRetry
public static Connection getConnectionWithoutRetry(DataBaseType dataBaseType, String jdbcUrl, String username, String password)
Get direct JDBC connection if connecting failed, try to connect for MAX_TRY_TIMES times NOTE: In DataX, we don't need connection pool in fact
-
getConnectionWithoutRetry
public static Connection getConnectionWithoutRetry(DataBaseType dataBaseType, String jdbcUrl, String username, String password, String socketTimeout)
-
query
public static ResultSet query(Connection conn, String sql, int fetchSize) throws SQLException
a wrapped method to execute select-like sql statement .- 参数:
conn- Database connection .sql- sql statement to be executed- 返回:
- a
ResultSet - 抛出:
SQLException- if occurs SQLException.
-
query
public static ResultSet query(Connection conn, String sql, int fetchSize, int queryTimeout) throws SQLException
a wrapped method to execute select-like sql statement .- 参数:
conn- Database connection .sql- sql statement to be executedfetchSize-queryTimeout- unit:second- 返回:
- 抛出:
SQLException
-
query
public static ResultSet query(Statement stmt, String sql) throws SQLException
a wrapped method to execute select-like sql statement .- 参数:
stmt-Statementsql- sql statement to be executed- 返回:
- a
ResultSet - 抛出:
SQLException- if occurs SQLException.
-
executeSqlWithoutResultSet
public static void executeSqlWithoutResultSet(Statement stmt, String sql) throws SQLException
- 抛出:
SQLException
-
closeResultSet
public static void closeResultSet(ResultSet rs)
- 参数:
rs-ResultSetto be closed- 抛出:
IllegalArgumentException
-
closeDBResources
public static void closeDBResources(ResultSet rs, Statement stmt, Connection conn)
-
closeDBResources
public static void closeDBResources(Statement stmt, Connection conn)
-
getTableColumns
public static List<String> getTableColumns(DataBaseType dataBaseType, String jdbcUrl, String user, String pass, String tableName)
-
getTableColumnsByConn
public static List<String> getTableColumnsByConn(DataBaseType dataBaseType, Connection conn, String tableName, String basicMsg)
-
getColumnMetaData
public static org.apache.commons.lang3.tuple.Triple<List<String>,List<Integer>,List<String>> getColumnMetaData(DataBaseType dataBaseType, String jdbcUrl, String user, String pass, String tableName, String column)
- 返回:
- Left:ColumnName Middle:ColumnType Right:ColumnTypeName
-
getColumnMetaData
public static org.apache.commons.lang3.tuple.Triple<List<String>,List<Integer>,List<String>> getColumnMetaData(Connection conn, String tableName, String column)
获取表元数据- 返回:
- Left:ColumnName Middle:ColumnType Right:ColumnTypeName
-
testConnWithoutRetry
public static boolean testConnWithoutRetry(DataBaseType dataBaseType, String url, String user, String pass, boolean checkSlave)
-
testConnWithoutRetry
public static boolean testConnWithoutRetry(DataBaseType dataBaseType, String url, String user, String pass, List<String> preSql)
-
query
public static ResultSet query(Connection conn, String sql) throws SQLException
- 抛出:
SQLException
-
dealWithSessionConfig
public static void dealWithSessionConfig(Connection conn, Configuration config, DataBaseType databaseType, String message)
-
sqlValid
public static void sqlValid(String sql, DataBaseType dataBaseType)
-
asyncResultSetNext
public static boolean asyncResultSetNext(ResultSet resultSet)
异步获取resultSet的next(),注意,千万不能应用在数据的读取中。只能用在meta的获取- 参数:
resultSet-- 返回:
-
asyncResultSetNext
public static boolean asyncResultSetNext(ResultSet resultSet, int timeout)
-
-