quartz获取JOB_DATA和对象读取, 操作quartz中JobDataMap类,修改clob字段的值,demo如
package aurora.job.util;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class ClobUtil {
private static String JOB_DATA_MAP="select * from QRTZ_JOB_DETAILS where rownum<=1";
private static String JOB_DATA_KEY="JOB_DATA";
protected static Object getObjectFromBlob(ResultSet rs, String colName)
throws ClassNotFoundException, IOException, SQLException {
Object obj = null;
InputStream binaryInput = rs.getBinaryStream(colName);
if (binaryInput != null) {
ObjectInputStream in = new ObjectInputStream(binaryInput);
try {
obj = in.readObject();
} finally {
in.close();
}
}
return obj;
}
public static Object getJobDataMap(Connection conn) throws SQLException {
String sql =JOB_DATA_MAP;
Object data = null;
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
rs.next();
try {
data= getObjectFromBlob(rs, JOB_DATA_KEY);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return data;
}
}