• 向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;

      ...

    )

  • 相关阅读:
    react:如何创建一个新项目
    python3-多重继承
    Stylus-富有表现力的、动态的、健壮的CSS
    使用@property
    python3-使用__slots__
    python:实例属性和类属性
    java_day1
    学习笔记144—SPSS 重复测量方差分析【方法二】
    学习笔记143—SPSS 重复测量的多因素方差分析
    学习笔记142—Matlab如何读取Excel和写入Excel??
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5823351.html
Copyright © 2020-2023  润新知