热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Slick/Scala将日期和时间存储到MySQL中

我有一个看似简单的问题,并希望有一个简单的解决方案.但我还没有找到它.我在MySQL中的属性是DATE和TIMESTAMP类型.这些是我的光滑课程:caseclassEvent(i

我有一个看似简单的问题,并希望有一个简单的解决方案.但我还没有找到它.

我在MySQL中的属性是DATE和TIMESTAMP类型.
这些是我的光滑课程:

case class Event (
id: Long, name: String, category: String, date: Date, venue: String, startTime: Date, endTime: Date, description: String, admission: String, addInfo: Option[String])
class Events(tag: Tag) extends Table[Event](tag, "EVENT") {
implicit val dateColumnType = MappedColumnType.base[Date, Long](d => d.getTime, d => new Date(d))
def id = column[Long]("ID", O.PrimaryKey)
def name = column[String]("NAME")
def category = column[String]("CATEGORY")
def date = column[Date]("DATE")
def venue = column[String]("VENUE")
def startTime = column[Timestamp]("START_TIME")
def endTime = column[Timestamp]("END_TIME")
def description = column[String]("DESCRIPTION")
def admission = column[String]("ADMISSION")
def addInfo = column[String]("ADD_INFO")
def * = (id, name, category, date, venue, startTime, endTime, description, admission, addInfo.?) <> (Event.tupled, Event.unapply _)
}

出于某种原因,我不能让这个工作.主要问题似乎是如何将java.util.Date存储到MySQL中的DATE和TIMESTAMP类型中.

有人可以建议如何做到这一点?我是Scala / Slick世界的新手.

解决方法:

您希望将java.util.Date存储到MySQL中的DATE和TIMESTAMP类型中,因此您需要定义转换:

1)java.util.Date => java.sql.Date

2)java.util.Date =>的java.sql.Timestamp

class Events(tag: Tag) extends Table[Event](tag, "EVENT") {
def id = column[Long]("ID", O.PrimaryKey)
def name = column[String]("NAME")
def category = column[String]("CATEGORY")
def date = column[Date]("DATE")(DateMapper.utilDate2SqlDate)
def venue = column[String]("VENUE")
def startTime = column[Date]("START_TIME") (DateMapper.utilDate2SqlTimestampMapper)
def endTime = column[Date]("END_TIME")(DateMapper.utilDate2SqlTimestampMapper)
def description = column[String]("DESCRIPTION")
def admission = column[String]("ADMISSION")
def addInfo = column[Option[String]]("ADD_INFO")
def * = (id, name, category, date, venue, startTime, endTime, description, admission, addInfo) <> (Event.tupled, Event.unapply)
}
object DateMapper {
val utilDate2SqlTimestampMapper = MappedColumnType.base[java.util.Date, java.sql.Timestamp](
{ utilDate => new java.sql.Timestamp(utilDate.getTime()) },
{ sqlTimestamp => new java.util.Date(sqlTimestamp.getTime()) })
val utilDate2SqlDate = MappedColumnType.base[java.util.Date, java.sql.Date](
{ utilDate => new java.sql.Date(utilDate.getTime()) },
{ sqlDate => new java.util.Date(sqlDate.getTime()) })
}


推荐阅读
  • 本文提供了关于数据库设计的建议和注意事项,包括字段类型选择、命名规则、日期的加入、索引的使用、主键的选择、NULL处理、网络带宽消耗的减少、事务粒度的控制等方面的建议。同时还介绍了使用Window Functions进行数据处理的方法。通过遵循这些建议,可以提高数据库的性能和可维护性。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
author-avatar
321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有