添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

JDBC和mysql及oracle中的Date,Time,Timestamp处理

1.MySQL的JDBC类型映射

mysql时间类型 jdbc时间类型
DATE java.sql.Date
DATETIME java.sql.Timestamp
TIMESTAMP java.sql.Timestamp
TIME java.sql.Time

2.Oracle与JDBC之间的类型映射

oracle时间类型 jdbc时间类型
DATE java.sql.Date
TIMESTAMP java.sql.Timestamp
TIME java.sql.Time

JDBC读取的数据保存为java类型时候,应该定义为java.util.Date,这样可以保持原有的精度,尽量避免使用java.sql.Date,java.sql.Date会则造成时分秒丢失。

mysql数据库,时间类型为DATETIME,jdbc插入一条记录写法示例:

 public int insert(Register register)
        Timestamp createTime = null;
        Timestamp dueTime = null;
        Timestamp sendTime = null;
        Timestamp operateTime = null;
        if (register.getCreateTime() != null)
            java.util.Date createdate = new java.util.Date(register.getCreateTime().getTime());
            createTime = new Timestamp(createdate.getTime());
        if (register.getDueTime() != null)
            java.util.Date dueDate = new java.util.Date(register.getDueTime().getTime());
            dueTime = new Timestamp(dueDate.getTime());
        if (register.getSendTime() != null)
            java.util.Date sendDate = new java.util.Date(register.getSendTime().getTime());
            sendTime = new Timestamp(sendDate.getTime());
        if (register.getOperateTime() != null)
            java.util.Date operateDate = new java.util.Date(register.getOperateTime().getTime());
            operateTime = new Timestamp(operateDate.getTime());
        String sql = "insert into dataview_register_info(ID, NAME, EMAIL, COMPANY_NAME, INDUSTRY, INTENDED_USE, CREATE_TIME, URL, LICENSE_STATE, PRODUCT_NAME,VERSION, DUE_TIME,"
                + "LICENSE_TYPE, AUTHORIZED_MODULES, APPLY_AMOUNT, MACHINE_CODE,LICENSE_FILE,SEND_STATE,SEND_TIME,OPERATOR_ACCOUNT,OPERATE_TIME,SERVER_INFO,APPLY_SOURCE) "
                + "values('" + register.getId() + "', '" + register.getName() + "','" + register.getEmail() + "','"
                + register.getCompanyName() + "','" + register.getIndustry() + "', '" + register.getIntendedUse()
                + "','" + createTime + "','" + register.getUrl() + "','" + register.getLicenseState() + "','"
                + register.getProductName() + "','" + register.getVersion() + "','" + dueTime + "','"
                + register.getLicenseType() + "','" + register.getAuthorizedModules() + "','"
                + register.getApplyAmount() + "','" + register.getMachineCode() + "','" + register.getLicenseFile()
                + "','" + register.getSendState() + "','" + sendTime + "','" + register.getOperatorAccount() + "','"
                + operateTime + "','" + register.getServerInfo() + "','" + register.getApplySource() + "')";
        int state = 0;
        state = DBUtil.insert(sql);
        LOG.info(sql);
        return state;
                    JDBC和mysql及oracle中的Date,Time,Timestamp处理1.MySQL的JDBC类型映射mysql时间类型jdbc时间类型DATEjava.sql.DateDATETIMEjava.sql.TimestampTIMESTAMPjava.sql.TimestampTIMEjava.sql.Time2.Oracle与JDB...
				
Oracle datetimestamp 区别详解 1.DATE数据类型      这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型。它可以存储月,年,日,世纪,时,分和秒。它典型地用来表示什么时候事情已经发生或将要发生。      DATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒。这个问题将在稍后讨论timestamp的时候被解决。可以使用TO_CHAR函数把DATE数据进行传统地包装,达到表示成多种格式的目的。 SQL> SELECT TO_CHAR(date1,'MM/DD/YYYY HH24:MI:SS') "Date" FR
ORACLE数据库里jdbc获取日期类型时分秒老是为0;用OracleSQLDeveloper查看数据库里时分秒也是0的问题 这是两个问题: ​ 我取oracle库里data类型日期,时分秒老是为0,是因为用的rs.getDate,用rs.getTimestamp()就正常了。 rs.getDate() //只是返回日期部分 rs.getTime() //只是返回时间部分 ...
Type是Java 编程语言所有类型的公共高级接口,也就是Java所有"类型"的父类。注意区分Type和Object: Type :java所有类型的父类,如所有Class,数组,泛型,这些类型都继承了Type,在java反射使用比较多. Object:java所有的对象的父类。 官方文档:Type is the common superinterface for all types in the Java programming language. These include raw t CREATE or replace TABLE dinnerTable( id number PRIMARY KEY , -- 餐桌主键 tableName VARCHAR(20), -- 餐桌名 tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定... // list是处理的数据 List<Object> list = Collections.emptyList(); crmConnect = CrmJdbcUtil.getCrmConnect(); // 使用批处理,则关闭自动提交 crmConnect.setAutoCommit(false); String insert = "INS
今天在学习oracle数据库的时候遇到一个问题,在用oracle.sql.DATE接受oracledate信息时拿不到完整的信息,缺失时分秒,情况类似下图 如果是在plsql还好处理,加个格式转换就好了,但是在jdbc这么写,java类没法直接接收会报错,于是我尝试将接值对象的date类型属性改为object类型 并且从结果集拿值的时候也是用的getObject 这下就没有什么问题了,数据成功拿到并且返回到前端展示 分享一点小小的经验,希望可以帮到大家,谢谢