Я работаю с MySQL и Java JTableКак преобразовать байт [] на сегодняшний день
В одном случае я могу получить только от JTable байт [], представляющая дату.
Я не смог найти способ преобразования байта [] назад в дату.
Я построил этот код для того, чтобы смоделировать проблему:
public demoJFrame1() {
try {
setSize(new Dimension(300, 300));
String select = "SELECT validity_start_date FROM `Table` ";
Connection c = ObtainConnection();
java.sql.ResultSet rs = c.createStatement().executeQuery(select);
if (rs.next()){
Date dt = rs.getDate(1);
byte[] byteArr = rs.getBytes(1);
}
// if i only have access to the byte[] byteArr, how do i convert it to Date variable ????
} catch (java.sql.SQLException ex) {
Logger.getLogger(demoJFrame1.class.getName()).log(Level.SEVERE, null, ex);
}
}
public final Connection ObtainConnection() throws SQLException{
String DBurl = "jdbc:mysql://localhost:3306/DBname";
String DBdriver = "com.mysql.jdbc.Driver";
String DBlogin = "root";
String DBpassword = "pass";
Class.forName(DBdriver);
return java.sql.DriverManager.getConnection(DBurl, DBlogin, DBpassword);
}
Если бы я только иметь доступ к байту [] byteArr, как преобразовать его в Date?
String s = Arrays.toString (byteArray); then convert 's' to date ... Я рекомендую библиотеки jodatime. Или вы можете использовать Calendar class – shan
Я не понимаю, почему вы не можете получить Date с помощью JDBC. Выполняется ли 'rs.getDate (1);' fail? Ты знаешь почему? – aalku
Эй, спасибо за ваше мнение, причина, по которой я не могу использовать функцию getDate, - это то, что я переопределяю функцию 'Компонент getTableCellRendererComponent (таблица JTable, значение Object, boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex)' on 'javax.swing .table.DefaultTableCellRenderer', это дает только переменную Object value, а не resultSet. – yaniv