[英]How do you add a JAVA TimeStamp for my SQL to work?
我必須制作一個將信息保存在數據庫中的 Refuge 程序; 我對 date_entry 變量有疑問,因為我不確定如何實現它。 數據庫說這個條目應該在時間戳中,但我不知道如何讓它在我的代碼上工作; 嘗試制作 function 然后將 function 分配給我的變量,但是是的,沒有用。 我添加了數據庫以防萬一。 這是我到目前為止得到的:
JButton btnInsert = new JButton("Insert");
btnInsert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = txtPetName.getText();
String photo = txtPetPhoto.getText();
String type = txtPetType.getText();
String color = txtColor.getText();
int gender = Integer.parseInt(txtGender.getText());
int isSterilized = Integer.parseInt(txtSterlized.getText());
String pedigree = txtPedigree.getText();
String dateEntry = showDate(); //HERE'S MY DOUBT>
String vaccine1 = txtVaccine1.getText();
String vaccine2 = txtVaccine2.getText();
String vaccine3 = txtVaccine3.getText();
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/refugio","root","2797");
pstmt = conn.prepareStatement("INSERT INTO PETS VALUES(?,?,?,?,?,?,?,?,?,?)");
pstmt.setString(1, name);
pstmt.setString(2, photo);
pstmt.setString(3, type);
pstmt.setString(4, color);
pstmt.setInt(5, gender);
pstmt.setInt(6, isSterilized);
pstmt.setString(7, pedigree);
pstmt.setString(8, showDate()); //THEN HERE
pstmt.setString(9, vaccine1);
pstmt.setString(10, vaccine2);
pstmt.setString(11, vaccine3);
int i = pstmt.executeUpdate();
if(i>0) {
JOptionPane.showMessageDialog(null, "Data was saved");
}else {
JOptionPane.showMessageDialog(null, "Data was not saved");
}
}catch(Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
});
btnInsert.setBounds(29, 715, 379, 54);
contentPane.add(btnInsert);
/**
DATABASE:
CREATE DATABASE refugio;
USE refugio;
CREATE TABLE Pets
(
petName VARCHAR(15) PRIMARY KEY NOT NULL,
petPhoto VARCHAR(50) NULL,
petType VARCHAR(10) NOT NULL,
color VARCHAR(15),
gender TINYINT(1) NOT NULL COMMENT '0 - female, 1 - male',
isSterilized TINYINT(1) COMMENT '0 - NO, 1 - YES',
pedigree VARCHAR(15),
date_entry timestamp NOT NULL,
vaccine1 VARCHAR(15) NULL,
vaccine2 VARCHAR(15) NULL,
vaccine3 VARCHAR(15) NULL
);
*/
import java.sql.Timestamp;
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
System.out.println(timestamp);
學分: 這里
MySQL 中的TIMESTAMP
類型類似於標准 SQL 類型TIMESTAMP WITH TIME ZONE
。
適當的 Java class 是OffsetDateTime
。
捕捉在時區中看到的當前時刻。
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
提取一個OffsetDateTime
。
OffsetDateTime odt = zdt.toOffsetDateTime() ;
發送到數據庫。
myPreparedStatement.setObject( … , odt ) ;
恢復。
OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;
這已經在 Stack Overflow 上討論過很多次了。 因此,搜索以了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.