zoukankan      html  css  js  c++  java
  • 向oracle中插入date时,持久层sql怎么写???

    public class EmpDao {
    
        public void addEmp(Emp emp) throws SQLException {
                
            QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
            String sql = "INSERT INTO EMPS(ID,USERNAME,GENDER,SAL,HIREDATE) VALUES(?,?,?,?,?)";
            Object[] param = {emp.getId(),emp.getUsername(),emp.getGender(),emp.getSal(),new Timestamp(emp.getHiredate().getTime())};
            runner.update(sql, param);
            
        }
        
        public static void main(String[] args) throws SQLException{
            EmpDao dao = new EmpDao();
            Emp emp = new Emp();
            emp.setUsername("张三");
            emp.setGender("男");
            emp.setSal(100);
            emp.setHiredate(new Date());
            dao.addEmp(emp);
        }
        
    }

    以上是dao持久层的代码,我这里用的dbutils和c3p0连接池连接的数据库,遇到的问题就是无法往oracle中插入数据,原因是hiredate的数据类型是Date

    解决办法:用new Timestamp(emp.getHiredate().getTime())时间戳就能轻松插入到oracle不用to_date()转换。

    ****************************** 注意 *********************************

    时间戳导包时要导sql的包,我就是因为到错了包导致插入失败找了半天才发现。日期用utils包   

    import java.sql.Timestamp;
    import java.util.Date;

    oracle 数据库中用Date类型就行了,我试了试用timestamp 也可以插入,但是值不太对,想摸索自己试试,反正用Date没事!!

    create table emps(

      ....

      hiredate Date;

      ...

    )

  • 相关阅读:
    Coding 账户与 本地 Git 客户端的配置
    leetcode_sort-list
    leetcode_insertion-sort-list
    leetcode_move-zeroes
    search-insert-position
    leetcode_remove-nth-node-from-end-of-list
    leetcode_queue-reconstruction-by-height
    leetcode_valid-parentheses
    leetcode_swap-nodes-in-pairs
    20201115-东北师范大学-助教-周总结-第9次
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5823351.html
Copyright © 2011-2022 走看看