본문 바로가기
MySql

MySQL Java의 MySQL 데이터베이스 테이블에 시간 (HH : MM : SS)을 삽입하는 방법은 무엇입니까?

by 베이스 공부 2020. 10. 25.
반응형

열 TIME 유형 ( myTime )이있는 테이블이 있습니다. string t ="15:50:00"; 이 문자열을 myTime 열 (HH : MM : SS)로 변환하고 삽입하는 방법.

감사합니다!

 

해결 방법

 

String 데이터 유형을 사용하여 Time 값을 나타내거나 MySQL Time 데이터 유형을 사용할 수 있습니다. Java 코드는 preparedStatement.setTime () 을 사용합니다. 예를 들면 다음과 같습니다.

귀하의 테이블은 다음과 같습니다.

CREATE my_table (
    id          INT          PRIMARY KEY AUTO_INCREMENT,
    name        VARCHAR2(30) NOT NULL,
    time_from   TIME
);

Java 코드는 다음과 같습니다.

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Time;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MySQLDatabaseDemo {

   Connection conn = null;
   PreparedStatement preparedStatement = null;

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

   /**
    * @param args [0] = value of "id"
    *             [1] = value of "name"
    *             [2] = value of "time_from"
    */
   public void insertRowWithTimeDatatype(String[] args) {

      String query = "insert into my_table (id, name, timefrom) " + 
                                   "values (?, ?, ?)";      

      DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
      Date date = sdf.parse(args[2]);
      Time time = new Time(date.getTime());

      try {
         conn = getConnection();  // getConnection() is YOUR method

         preparedStatement = conn.prepareStatement(query);

         preparedStatement.setInt(1, Integer.parseInt(args[0]));
         preparedStatement.setString(2, args[1]);
         preparedStatement.setTime(3, time);

         // Execute statement and return the number of rows affected
         int rowCount = preparedStatement.executeUpdate();
         System.out.println("Number of rows affected: " + rowCount);
      } finally {
         preparedStatement.close();
         conn.close();
      }
   }
}

 

참조 페이지 https://stackoverflow.com/questions/45657196

 

 

반응형

댓글