2015-06-19 5 views
1

Как преобразовать дату из базы данных mysql в переменную в Java? Это то, что я пытался до сих пор:getDate from mysql

try { 
    Connection connection = DriverManager.getConnection(database, user, pass); 
    Statement statement = connection.createStatement(); 
    String sql = "select mhs.angkatan from t_nilai nilai JOIN t_mahasiswa mhs ON nilai.nim = mhs.nim WHERE mhs.nim = '" + txt_nim + "'"; 
    ResultSet resultSet = statement.executeQuery(sql); 
    Date angkatan = resultSet.getDate("angkatan"); 
    resultSet.close(); 
    statement.close(); 
    connection.close(); 
} catch (Exception e) { 
    System.err.println(e.getMessage()); 
    JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.INFORMATION_MESSAGE); 
    System.exit(0); 
} 
+1

Используйте если (res.hasNext()) {прежде чем попытаться прочитать дату из ResultSet – MadProgrammer

ответ

1

Проверить this размещение вне пожалуйста. Существует пример есть

___UPDATE___

(Ниже код взят из ссылки, которую я дал выше. Благодаря Балкришны Rawool за головы)

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class Main { 
    public static Connection getMySQLConnection() throws Exception { 
    String driver = "org.gjt.mm.mysql.Driver"; 
    String url = "jdbc:mysql://localhost/databaseName"; 
    String username = "root"; 
    String password = "root"; 
    Class.forName(driver); 
    return DriverManager.getConnection(url, username, password); 
    } 

    public static void main(String args[]) { 
    ResultSet rs = null; 
    Connection conn = null; 
    Statement stmt = null; 
    try { 
     conn = getMySQLConnection(); 
     stmt = conn.createStatement(); 
     rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable"); 
     while (rs.next()) { 
     java.sql.Time dbSqlTime = rs.getTime(1); 
     java.sql.Date dbSqlDate = rs.getDate(2); 
     java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp(3); 
     System.out.println("dbSqlTime=" + dbSqlTime); 
     System.out.println("dbSqlDate=" + dbSqlDate); 
     System.out.println("dbSqlTimestamp=" + dbSqlTimestamp); 

     java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime()); 
     java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime()); 
     System.out.println("in standard date"); 
     System.out.println(dbSqlTimeConverted); 
     System.out.println(dbSqlDateConverted); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
     rs.close(); 
     stmt.close(); 
     conn.close(); 
     } catch (SQLException e) { 
     e.printStackTrace(); 
     } 
    } 
    } 
} 
+0

Пожалуйста, попробуйте избегайте только ссылок в ответах. Ссылки могут сломаться. Добавьте некоторую информацию в сам ответ, чтобы сделать ее еще более кратким. –

+0

О, ОК. Я пытался избежать избыточной информации, но я не мог думать о том, что ссылки могут сломаться. – Alp

0

Просто итерация полученного результата задавать. Я вижу, что вы передаете параметры непосредственно в строку SQL, это не безопасный способ, это может привести к SQL-инъекции. Свяжите параметры с инструкцией, чтобы избежать внедрения sql.

java.sql.Time dbSqlTime=null; 

while (res.next()) { 
    dbSqlTime = res.getTime(1); 
} 
0

пользователь «выберите сейчас()», получить MySQL время базы данных,

package com.api.util; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Date; 

public class DateUtils { 
    /** 
    * @return 
    * get database time 
    */ 
    public static Connection getMySQLConnection() throws Exception { 
      String driver = "com.mysql.jdbc.Driver"; 
      String url = "jdbc:mysql://localhost:3306/upm"; 
      String username = "root"; 
      String password = "1993212"; 
      Class.forName(driver); 
      return DriverManager.getConnection(url, username, password); 
      } 
    public static void main(String[] args) { 
      ResultSet rs = null; 
      Connection conn = null; 
      Statement stmt = null; 
      try { 
       conn = getMySQLConnection(); 
       stmt = conn.createStatement(); 
       rs = stmt.executeQuery("SELECT NOW()"); 
       while (rs.next()) { 
        System.out.println("连接成功="+rs); 
       java.sql.Timestamp mysqlTime = rs.getTimestamp(1); 
       System.out.println("数据库时间="+mysqlTime); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } finally { 
       try { 
       rs.close(); 
       stmt.close(); 
       conn.close(); 
       } catch (SQLException e) { 
       e.printStackTrace(); 
       } 
      } 
    } 

}