通过JDBC往Oracle中插入timestamp类型数据
表结构:
create table TEST( ID INTEGER, BIRTHDAY TIMESTAMP );
使用JDBC将日期插入到TIMESTAMP类型字段:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; public class Test { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获得Connection * * @return */ public static Connection getConnection() { Connection conn = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/orcl", "root", "root"); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub PreparedStatement pst = null; Connection conn = getConnection(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String myDate = df.format(new Date()); //当前时间 String sql = "insert into test(id,birthday) values('1',to_timestamp('" + myDate + "','yyyy-mm-dd hh24:mi:ss'))"; pst = conn.prepareStatement(sql); pst.executeUpdate(); // 省略IO流close } }
如上例子中是使用to_timestamp将字符型转成timestamp来达到插入timestamp数据的目的。但是当前的insert语句只使用于oracle,当环境变更为mysql时则不行(没有to_timestamp函数)。
为此我们做出如下修改:
package com.ssh.model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; public class Test { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获得Connection * * @return */ public static Connection getConnection() { Connection conn = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/orcl", "root", "root"); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub PreparedStatement pst = null; Connection conn = getConnection(); String sql = "insert into test(id,birthday) values('1'," + new Timestamp(System.currentTimeMillis()) + ")"; pst = conn.prepareStatement(sql); pst.executeUpdate(); // 省略IO流close } }
这样做到了兼容。
相关推荐
- `BOOLEAN`:在 Oracle 中没有直接对应的数据类型,但可以通过 `NUMBER(1)` 或 `CHAR(1)` 来模拟。 - `TINYINT`、`SMALLINT`、`INTEGER` 和 `BIGINT`:这些是 SQL 标准的整数类型,分别映射到 `java.sql.Types....
本文将详细介绍如何在Oracle数据库中插入当前时间,并通过Java编程语言实现这一功能。 #### Oracle 中插入当前时间的方法 在Oracle数据库中插入当前时间通常有两种方法:一种是使用SQL语句直接插入系统当前时间;...
这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。 3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。 4.11gR1 Thin driver支持...
这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。 3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。 4.11gR1 Thin driver...
我们首先定义了两种数据库之间的数据类型映射规则,然后展示了如何在目标Oracle数据库中创建相应的表结构,并最后编写了一个完整的Java程序来实现数据的实际迁移。这种方式不仅适用于“中华人民共和国行政区划代码”...
- **数据转换**:根据SQL Server和Oracle之间的数据类型差异进行转换。例如,SQL Server的datetime类型可能需要转换为Oracle的timestamp或date类型。 - **数据加载**:将转换后的数据以批量插入的方式写入Oracle。...
直接查询(方式一)可能会遇到数据类型不兼容的问题,且性能相对较慢。相比之下,使用`openquery()`(方式二)通常更为稳定且速度接近于直接在Oracle中执行,例如: ```sql SELECT * FROM openquery(LINK2ORACLE,'...
4. 自定义转换:如果以上方法无效,可以考虑自定义转换逻辑,比如在插入或查询数据时,将Timestamp转换为字符串,保存时保留所有精度,读取时再转换回Timestamp。 在提供的`TimestampDemo.java`文件中,我们可以...
然而,由于SQL Server和Oracle的数据类型可能不同,所以在导入Oracle前,你可能需要转换这些数据类型。例如,SQL Server的`datetime`可能需要转换为Oracle的`DATE`或`TIMESTAMP`。 3. **数据导入**: - 对于Oracle...
11. **数据类型**:Oracle支持的数据类型,如NUMBER,VARCHAR2,DATE,TIMESTAMP,BLOB等。 12. **触发器**:自动响应特定数据库事件的程序代码,用于业务规则的实施。 13. **游标**:在PL/SQL中处理单行或多行...
通过结合使用JDBC和Oracle的触发器与存储过程,我们可以实现复杂的数据操作和业务逻辑,同时保持代码的整洁和模块化。在“MyProfile_11_8”文件中,可能是更详细的JDBC代码示例或者数据库配置信息。
在Java编程中,当需要将当前时间插入到Oracle数据库时,必须注意Java时间和Oracle数据库之间的时间类型匹配。这是因为Java中的日期时间类与Oracle数据库中对应的日期类型有所不同。本篇文章将详细解析如何正确地在...
确保为每个字段选择合适的数据类型,例如`VARCHAR2`用于字符串,`DATE`或`TIMESTAMP`用于日期和时间。 2. **Struts配置**:在Struts的配置文件(通常为struts-config.xml)中,添加`RegisterUser` Action的配置,...
SqlServer和Oracle可能对某些数据类型有不同的表示,因此在迁移时,可能需要进行数据类型的转换。例如,SqlDateTime到Oracle的Timestamp,或varchar2到nvarchar。 通过以上步骤,我们可以实现基于JDBC的数据迁移。...
在留言板应用中,我们需要编写JDBC代码来连接Oracle数据库,执行SQL语句(如INSERT、SELECT、UPDATE和DELETE)来实现数据的增删改查操作。 2. **Session管理**:为了确保用户安全登录和操作,应用需要使用session来...
JDBC是Java语言访问数据库的标准API,它可以用来连接各种类型的数据库,如MySQL、Oracle等。JDBC提供了连接、执行SQL语句、处理结果集等功能。在我们的留言管理系统中,JDBC将用于建立数据库连接,执行增删查改...
【JDBC基础知识】 JDBC(Java Database Connectivity)是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如连接数据库、...在实际开发中,熟练掌握JDBC能有效提升数据操作的效率和代码质量。
#### 六、JDBC 中数据类型详解 **6.1 基本数据类型** - 包括整型、浮点型、字符串等。 - 如 `Integer`, `Float`, `String` 等。 **6.2 日期类型** - 包括 `Date` 和 `Timestamp` 类型。 - `Date` 只包含日期信息,...
在Java中,使用JDBC添加数据时,可以创建一个`Expense`类,包含日期属性,并通过`java.sql.Date`获取当前时间: ```java Expense expense = new Expense(); expense.setNumber("123"); expense.setDate(new java....