zoukankan      html  css  js  c++  java
  • JDBC(四)、jdbc日期、文本、二进制问题

    java.sql.Types

    jdbc日期问题

    java.sql包下的时间

    他们都是java.util.Date的子类

    • Date:表示日期,只有年月日,没有时分秒。会丢失时间;
    • Time:表示时间,有年月日时分秒;
    • Timestamp:表示时间戳,有年月日时分秒,以及毫秒。

    java.util.Date

    • java.util.Date – 年月日时分秒
    • java.util.Calendar – Date getTime()
    ps.setDate(2,new java.sql.Date(birthday.getName()))
    
    插入时会截去时间部分
    
    插入:
    	java.util.Date date = new java.util.Date();
    
    	ps.setDate(1, new Date(date.getTime()));
    	ps.setTime(2, new Time(date.getTime()));
    	ps.setTimestamp(3, new Timestamp(date.getTime()));
    
    查出:
    	Date date = rs.getDate(1);
    	Time time = rs.getTime(2);
    	Timestamp timestamp = rs.getTimestamp(3);
    	
      因为继承关系:
        java.util.Date date = rs.getDate(1);
        java.util.Date time = rs.getTime(2);
        java.util.Date timestamp = rs.getTimestamp(3);
    
    

    jdbc文本文件 Clob

    File file = new File("src/jdbc.java");
    File file = new BufferedReader(new FileReader(file));
    ps.setCharacterStream(1,reader,(int)file.lenght())
    
    Clob clob = rs.getClob(1);
    Reader reader = clob.getCharacterStream();
    
    // 或者 
    // Reader reader = rs.getCharacterStream(1);
    
    File file = new File("JdbcUtils_back.java");
    Writer writer = new BufferedWriter(New FileWriter(file));
    char[] buf = new char[1024];
    for(int i=0;(i = reader.read(buf) > 0;)){
        writer.write(buf,0,i);
    }
    writer.close(); // 必须关闭 最好放在finally里面
    reader.close();
    
    或者
    // 将文本读取出来放进去,
    // 前提是数据库必须定义为clob类型
    ps.setString(1,x);
    
    
    // 读取
    rs.getString(1);
    

    二进制Blob

    // 存
    File file = new File("");
    InputStream in = new BufferedInputStream(new FileInputStream(file));
    rs.setBinaryStream(1,in,(int)file.lenght());
    
    // 取
    Blob blob = rs.getBlob(1);
    InputStream in = blob.getBinaryStream(1);
    // 或者
    // InputStream in = rs.getBinaryStream(1);
    
    OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
    byte[] buf = new byte[1024];
    for(int i=0;(i = in.read(buf) > 0;)){
        out.write(buf,0,i);
    }
    writer.close(); // 必须关闭 最好放在finally里面
    reader.close();
    

  • 相关阅读:
    150个JS特效脚本
    .sql文件被加密恢复
    Alpha865qqz.id 加密数据库恢复
    最新incaseformat 病毒删除文件恢复
    Oracle MISSING00000文件故障恢复
    asm 磁盘分区丢失恢复----惜分飞
    oracle数据文件0kb恢复
    ORA-600 16703--oracle介质被注入恶意脚本
    GANDCRAB病毒oracle数据库恢复
    文件系统损坏,oracle数据库恢复
  • 原文地址:https://www.cnblogs.com/biturd/p/12623148.html
Copyright © 2011-2022 走看看