MySQL中的datetime对应Java类型

日期类型    存储空间    日期格式                日期范围
datetime   8bytes      YYYY-MM-DD HH:MM:SS    1000-01-01 00:00:00~9999-12-31 23:59:59
timestamp  4bytes      YYYY-MM-DD HH:MM:SS    1970-01-01 00:00:01~2037-12-31 23:59:59
date       3bytes      YYYY-MM-DD             1000-01-01~9999-12-31

datetime对应Java中的java.util.date

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
EfsFrame是一套整体的企业级php开发框架解决方案,整个框架体系包含了Web表现层开发包,组件开发包,基础数据库设计一整套完整的基于B/S架构应用程序设计开发的完整解决方案。Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/S架构的设计解决方案。 EfsFrame(开发框架) 2.2 升级内容: 1、bug修正 a)修正 firefox环境下的快捷键好像不太支持的问题; b)修正 firefox环境下的menuDisabled  属性无效    store的 remoteSort 属性无效; c)修正分页列表下面分页条 分页那里直接输入数字,回车不跳页的问题; d)修改 一个form同时存在两个datetime的input时,第二个不能选择时分的bug; e)增加 input的 kind与datatype的自动对应关系默认对应关系为: Kind为 int、float时  datatype默认为 “1” Kind 为 data时 datatype默认为”3” Kind 为 datatime时 datatype默认为”4” Kind为其他值时 datatype默认为”0” 2、新的扩展 a)扩展对select的应用,默认将select对象渲染为ext的combobox对象,     详细说明见相关文档 b)扩展对多文件、单文件上传的封装(详细说明见相关文档)。 c)扩展高级插件editorgrid(可动态的添加、修改、删除行,对行的单元格进行编辑)(授权用户可用) d)扩展高级插件grid扩展列插件(授权用户可用) EfsFrame主要特点: 基于Ext的优秀企业级开源框架(精通一种、掌握两种) •语言支持:Java、.Net、PHP、Asp •数据库支持:Oracle、SqlServer、MySQL 强大灵活,接口简单实用的表现层(2天学会Extjs开发) •懂Html、简单Js即可快速上手Extjs开发 •无需美工、代码简单,提升Web开发4-8倍效率 设计灵活、高效、开源的组件层 •有任何数据库编程基础2天内即可轻松上手 •Java、.Net、PHP模型互通,学会一种、掌握两种,最大限度为用户节省跨平台成本 •支持Oracle、SqlServer、MySQL数据库模型,轻松解决跨数据库难题 完善的企业级框架模型,能轻松搭建任何B/S应用底层管理模型 •事务事件管理、单位管理、用户管理、角色权限分配管理 •字典管理、唯一编码分配管理、错误日志追踪管理 EfsFrame框架设计目标: l、整体提升企业的项目管理水平; 2、整体提升企业的研发人员的研发水平; 3、整体提升企业的项目研发效率; 4、整体提升企业的项目研发的健壮性; 5、最大限度减少企业的项目维护成本;
Javashop开发规范V2.2 版本 说明 提交人 V1.0 初稿 定义了包名、异常、事务、和路径的规范 王峰 V2.0 1. 重新整理了命名规范 2. 增加常用命词对照表 王峰 V2.1 1.增加数据库操作的说明 2.增加常用方法介绍 王峰 V2.2 增加关于数据导入导出的说明 王峰 V2.3 增加校验使用说明(5.3章节) 王峰 1 命名规范 1.1 包命 1. 小写字母 2. 以com.enation.javashop开头 3. 组件以com.enation.compoent开头 1.2 类名 一、 action 以Action结尾,如:UserAction 二、 业务类 1.接口: 以I开头,以Manager结尾,如:IUserManager 2.实现类 以Manager结尾,如:UserManager 三、 组件类 以Component结尾,如:ShopEmailComponent 四、 挂件类 以Widget结尾,如:MemberAddressWidget 五、 插件类 以Plugin结尾,如:SendRegMailPlugin 1.3 变量/属性命名规则 1. 全部小写 2. 可用下划线连接 如:username、 userid 1.4 方法命名 1.4.1 Action类 add 到添加页 edit 到修改页 saveAdd 保存添加 saveEdit 保存修改 delete 删除 list 列表 1.4.2 业务类 add 添加 edit 修改 delete 删除 list 列表 get 读取详细 2 数据库开发规范 2.1 数据操作支持类 一、 业务类数据库调用 1.继承于BaseSupport 2.在spring文件声明parent为baseSupport <bean id="xxxManagerImpl" class="xxx.xxx.xxx.XxxxManager" parent="baseSupport"/> 3.通过this.baseDaoSupport操作数据库 实际使用的是:com.enation.eop.sdk.database.BaseJdbcDaoSupport 此种操作示例: com.enation.javashop.core.service.impl.BrandManager 注意事项:见【BaseDaoSupport的意义和存在的问题】 二、 直接声明baseDaoSupport操作数据库 在一些挂件类或某些特殊情况,可以直接需要直接声明baseDaoSupport 此种操作示例: com.enation.javashop.core.service.impl.batchimport.GoodsSpecImporter 注意事项:见【BaseDaoSupport的意义和存在的问题】 2.2 BaseDaoSupport的意义存在的问题 BaseDaoSupport对JdbcDaoSupport进行包装,通过 baseDBRouter 获取表名, 为什么要通过 baseDBRouter 来获取表名呢?Eop机制是支持SAAS(多租户)模式运行的,在SAAS会为每个用户提供如:es_goods_<userid>_<siteid>这样的表。 为了保证在单机版和SAAS模式都运行正常,BaseDaoSupport将过滤sql的相应表名。 但目前还只能支持简单的单表select、insert、update,对于多表的联合查询或更新不能支持。 在这种情况下,就需要通过 daoSupport(com.enation.framework.database.impl.JdbcDaoSupport)来操作,daoSupport不对sql进行任何更改,这时为了保证兼容saas模式兼容性,就要使用BaseSupport.getTableName(String tablename)方法 或baseDBRouter.getTableName(String tablename);来保证表名的正确。 (够混乱?真心希望出现一位大侠拯救这个状况,使basedaosupport可以处理所有情况的sql) 2.3 实体Bean和数据库表对照 Javahop数据库操作支持,将对象直接保存或修改,如: this.baseDaoSupport.insert("brand", brand); this.baseDaoSupport.update("brand", brand, "brand_id=" + brand.getBrand_id()); 规则为:实体的属性名和数据库表的字段名相同,如: 对应的数据库字段: 2.4 注解的使用 2.4.1 @NotDbField 在某个实体Bean,我们可能会有一些属性不对应数据库字段,这时我们需要在相应的 Geter方法加上@NotDbField注解,以便使数据库机制知道这个字段不转为sql语句,如: private File file; @NotDbField public File getFile() { return file; } 2.4.2 @PrimaryKeyField 在实合格bean和数据库对照过程,数据库机制需要识别主键,所以需要我们在主键的对应属性的Geter方法加上@PrimaryKeyFiled注解,如: private Integer brand_id @PrimaryKeyField public Integer getBrand_id() { return brand_id; } 3 数据导入 3.1 导入接口 DBSolutionFactory.dbImport("file:com/enation/javashop/component/coupon/add.xml","es_"); 3.2 数据Xml文件说明 3.2.1 创建表 <action> <command>create</command> <table>tablename</table> <field> <name>id</name> <type>int</type> <size>8</size> <option>11</option> </field> <field> <name>name</name> <type>varchar</type> <size>255</size> <option>00</option> </field> </action> 3.2.2 删除表 <action> <command>drop</command> <table>tablename</table> </action> 3.2.3 添加、删除列 <action> <command>alter</command> <table>goods</table> <field type="add"> <name>isgroupbuy</name> <type>int</type> <size>1</size> <default>0</default> </field> <field type="drop"> <name>isgroup</name> </field> </action> 3.2.4 创建索引 <action> <command>index</command> <table>goods</table> <field > <name>goodsid</name> </field> </action> 3.2.5 删除索引 <action> <command>unindex</command> <table>goods</table> <field > <name>goodsid</name> </field> </action> 3.2.6 插入数据 <action> <command>insert</command> <table>es_adcolumn</table> <fields>acid,cname,width,height,atype,disabled</fields> <values>5,'列表页上部横幅','972px','67px',0,'false'</values> </action> 3.2.7 删除数据 暂未支持 3.2.8 更新数据 暂未支持 3.3 数据类型对照表 xml Mysql Oracle SqlServer int int NUMBER smallint int(1) smallint(1) NUMBER(2) int memo text CLOB text datetime datetime TIMESTAMP datetime long bigint NUMBER bigint decimal decimal NUMBER(20,2) decimal 4 数据导出 String[] tables = new String[1]; tables[0] = "es_auth_action"; DBSolutionFactory.dbExport(tables, false, "") 5 常用方法介绍 5.1 上下文获取 参见: http://www.javamall.com.cn/developer_help/index.php/常用方法 5.2 地区联动下拉框 1.如果是在jsp : <html:regionselect></html:regionselect> 2.如果是在Freemarker的html: <#assign RegionSelect= "com.enation.app.base.component.widget.regions.RegionSelectDirective"?new()> <@RegionSelect /> 以上两种方式均支持以下参数: province_id:省id city_id:市id region_id:区id 如果指定上述参数,则默认选 5.3 客户端校验 EOP自动为应用提供表单校验功能,通过指定form样式名和指定表单项特定属性的方式来完成。 5.3.1 示例 代码示例 [removed] function checkUserName(val){ if(val=='kingapex' ) return true; else return "用户名已存在"; } $.Validator.options={lang:{isrequired:'此项不能为空!'}}; [removed] <form class="validate"> 必须:<input type="text" name="test1" isrequired="true"> <br/> 整型:<input type="text" name="test2" isrequired="true" dataType="int"> <br/> 浮点型:<input type="text" name="test3" dataType="float"> <br/> 邮件:<input type="text" name="test4" isrequired="true" dataType="email"> <br/> 日期:<input type="text" name="test5" isrequired="true" dataType="date"> <br/> 电话号码:<input type="text" name="test6" isrequired="true" dataType="tel_num"> <br/> 手机:<input type="text" name="test7" isrequired="true" dataType="mobile"> <br/> 邮政编码:<input type="text" name="test8" isrequired="true" dataType="post_code"> <br/> 网址:<input type="text" name="test9" isrequired="true" dataType="url"> <br/> 自定义函数:<input type="text" name="test10" isrequired="true" fun="checkUserName"> <br/> <input type="submit" value="确定" /> </form> 5.3.2 参数说明: 5.3.2.1 isrequired 为true则为必填项,不指定或指为false则为非必填项。 5.3.2.2 dateType 指定校验特殊类型,支持的类型见下表: 类型 说明 int 整数 float 浮点数 email 邮件格式 date 日期格式 tel_num 电话格式 mobile 手机格式 post_code 邮编 url 网址 5.3.2.3 fun 自定义校验函数,返回真则通过校验,返回假或字串则校验失败,返回的字串会出现在失败提示框。 5.3.2.4 动态绑定校验函数 通过 setValidator实现 $("#region_id").setValidator(function(){ var value = $("#region_id").val(); if( value=="" || value=="0" ) return "地区信息不完整"; else return true; }); 5.3.2.5 提示器 提示器用于显示校验的结果,如果不指定默认会在校验的控件后面创建一个span做为提示器。 可以通过两种方式指定提示器: 一、在控件声明tiper属性: <input type="text" name="username" tiper="#name_tiper" /> 注:tiper指定的是jquery的一个选择器表达式。 二、动态指定: $("#region_id").setTiper($("#name_tiper")); 注:此时指定的是jquery对象,而不是一个表达式 5.3.2.6 手动调用: $("#siteForm").checkall(); 6 常用字典对照表 6.1 常用值 名称 值 说明 返回结果 0:失败 1:成功 适用于: 1. 客户端json返回值 2. 服务器端方法返回值 3. 数据库是否的标识值 性别 0:女 1:男 6.2 常用名称 名称 英文 商品 goods 货品 product 规格 spec 订单 order 会员 member 积分 point 购物车 cart 结算 checkout 订单 order 品牌 brand 分类 cat 优惠劵 coupon 支付 payment 团购 groupbuy 虚拟 virtual 发票 receipt 属性 prop 参数 param 标签 tag 地区 region 7 异常 1. 提供统一的异常处理机制 2. 底层级别的类不处理异常,只管向上抛出异常,且统一抛出RuntimeExcepton 8 事务处理 1. 数据库统一使用Srping AOP事务 2. 采用注解方式: 在接口处: @Transactional(propagation = Propagation.isrequired) 9 路径的规范 返回的路径变量最后不带 ‘/’ 如:String path =”user/1”; 使用者: path = path+”/”+myVar; 10 样式/HTML规范 10.1 前台分页 <div class="page"><span class="info">共41条记录</span> <span class="info">1/3</span> <ul><li><a class="selected">1</a></li> <li><a href="search-cat-4-page-2.html" class="unselected">2</a></li> <li><a href="search-cat-4-page-3.html" class="unselected">3</a></li> <li><a href="search-cat-4-page-2.html" class="unselected">>></a></li> <li><a href="search-cat-4-page-3.html" class="unselected">>|</a></li> </ul></div>
### 回答1: 这个问题的意思是如何在Java处理MySQLdatetime类型。在Java,我们可以使用java.sql.Timestamp类来表示MySQLdatetime类型。我们可以使用PreparedStatement来设置参数,并使用ResultSet来检索结果。使用JDBC连接MySQL时,我们需要使用驱动程序来连接数据库,并使用Connection对象获取PreparedStatement和ResultSet对象。同时,我们还可以使用Java的日期和时间API(如java.time.LocalDateTime)来对日期和时间进行操作。 ### 回答2: MySQLdatetime类型是表示日期和时间的数据类型,其包含年、月、日、时、分、秒等信息。如果在Java要使用datetime类型,可以使用java.util.Date类或java.sql.Timestamp类。 java.util.Date类是Java最基本的日期时间类之一,可以用来处理时间戳或日期等各种数据类型。在用Java操作MySQL的时候,需要注意Java的Date类和MySQLdatetime类型之间的转换。在Java,可以通过SimpleDateFormat类来将字符串转换成Date对象,然后再将Date对象保存到MySQL数据库datetime类型字段。例如: ``` SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = "2021-08-31 09:00:00"; Date date = formatter.parse(dateString); ``` java.sql.Timestamp类可以用来保存日期和时间,其精度比Java的Date类高,可以保存毫秒级别的时间戳信息。在Java操作MySQL的时候,也可以使用java.sql.Timestamp类来表示datetime类型。例如: ``` java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf("2021-08-31 09:00:00"); ``` 不管是使用java.util.Date类还是java.sql.Timestamp类,都需要注意时区的设置。在Java使用日期时间相关的类时,一般建议使用UTC时间进行存储和计算,而在展示给用户时,再将UTC时间转换为本地时间。正确设置时区可以避免一些常见的时间问题,例如夏令时的问题等。 除了以上提到的两种日期时间类,还有很多其他的日期时间类和库可以使用,例如Joda-Time、Date4j等。在使用这些库时,需要根据具体需求选择和配置。总之,在JavaMySQLdatetime类型进行操作时,需要注意日期时间的精度、时区、格式等问题,才能保证代码的正确性和稳定性。 ### 回答3: MySQL datetime 类型,其值范围为‘1000-01-01 00:00:00’到‘9999-12-31 23:59:59’,精确到秒。而在 Java ,可以使用 java.util.Date 类型来表示这个范围,但是存在一些限制,比如只能表示到毫秒级别,无法表示 MySQL datetime 的精度范围,因此通常建议使用 java.sql.Timestamp 类型来表示 MySQL datetime 类型java.sql.Timestamp 是继承 java.util.Date 的子类,除了拥有 Date 的所有功能,还可以精确到纳秒级别,可以满足MySQL datetime 精度范围的要求。在使用时,可以采用以下方式将 MySQL datetime 类型转换成 java.sql.Timestamp 类型: ```Java import java.sql.Timestamp; import java.text.DateFormat; import java.text.SimpleDateFormat; public class DateUtils { /** * 日期时间格式化模板 */ public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * 将 MySQL datetime 格式的字符串转换为 java.sql.Timestamp 类型 * @param dateTimeStr MySQL datetime 格式的字符串 * @return java.sql.Timestamp 类型的时间 */ public static Timestamp dateTimeToTimestamp(String dateTimeStr) { DateFormat dateFormat = new SimpleDateFormat(DATETIME_PATTERN); try { java.util.Date date = dateFormat.parse(dateTimeStr); return new Timestamp(date.getTime()); } catch (Exception e) { e.printStackTrace(); } return null; } } ``` 使用时,可以调用该方法将 MySQL datetime 格式的字符串转换为 java.sql.Timestamp 类型: ```Java String dateTimeStr = "2022-08-02 17:45:30"; Timestamp timestamp = DateUtils.dateTimeToTimestamp(dateTimeStr); System.out.println(timestamp); ``` 通过以上方式可以将 MySQL datetime 类型转换为对应Java 类型,并且获取到原始MySQL datetime 对应的精确时间值。根据实际应用场景需求,可以灵活使用不同的时间类型进行操作和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值