如何将节省数据库分开

  • 本文关键字:数据库 节省 java
  • 更新时间 :
  • 英文 :


你好,我正在研究我的系统,现在我一直坚持如何保存每月和一年的单独列。在我的系统中,我有一个目标让用户打印报告月或每天,而我的解决方案是将每日和年保存到每个单独的列中。对不起,我的英语不好。

例如,您可以将系统日期作为字符串作为字符串,从此资源可以看出:如何将当前日期转换为Java中的字符串?

ZoneId zoneId = ZoneId.of( "America/Montreal" ) ;  // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;

以后您可以使用Split将字符串用于所需的值(例如,一年,每月(,例如:如何按Space

将字符串拆分
str = "2017-05-03";
String[] splited = str.split("-");

在最后一个示例中," - ",也许您需要使用" - "的ASCII代码。las,我忘记了这个

您可以在下面使用JDK 8日期API中的localdate来获取年,每月和每日,并将其持续到DB中:

LocalDate date = LocalDate.now(); 
int year = date.getYear();
int month = date.getMonthValue(); // or Month month = date.getMonth() if you want month names
int day = date.getDayOfMonth();

其他答案对于在Java中使用LocalDate是正确的。

数据库

至于数据库,将列定义为仅日期类型的类型,例如SQL Standard's类型DATE

JDBC

如果您的JDBC驱动程序符合JDBC 4.2,则可以直接使用Java.Time类型,例如LocalDate

myPreparedStmt.setObject( … , myLocalDate ) ;

和:

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;

如果您的驱动程序不符合,请返回使用Java.sql类型。您可以通过调用添加到旧类中的新方法来转换为fro。但是,尽可能短暂地使用Java.sql类型,使用Java.Time类进行所有实际工作。

myPreparedStmt.setDate( … , java.sql.Date.valueOf( myLocalDate ) ) ;

…和…

LocalDate ld = myResultSet.getDate( … ).toLocalDate() ;

最新更新