JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
java8新特征详解
java文件操作专题教程

知识点

相关文章

更多

最近更新

更多

JDBC系列教程之五:数据类型

2019-03-28 00:42|来源: 领悟书生

数据类型

l  详细信息见java.sql.Types

l  几种特殊且比较常用的类型

        1.DATA,TIME,TIMESTAMPà date,time,datetime

存:ps.setDate(i,d); ps.setTime(i,t); ps.setTimestamp(i, ts);

        取:rs.getDate(i); rs.getTime(i); rs.getTimestamp(i);

R

// 5.处理结果

while (rs.next()) {

//birthday = new  Date(rs.getDate("birthday").getTime());

birthday = rs.getDate("birthday");

}

C

String sql = "insert into user(name,birthday, money) values (?,  ?, ?) ";

ps =  conn.prepareStatement(sql);

ps.setString(1,  name);

ps.setDate(2, new  java.sql.Date(birthday.getTime()));

ps.setFloat(3,  money);

        2.CLOBà text(大文本)

          存:ps.setCharacterStream(index, reader, length);

              ps.setString(i, s);

          取:reader = rs. getCharacterStream(i);

              reader =rs.getClob(i).getCharacterStream();

              string = rs.getString(i);

R

// 4.执行语句

          rs = st.executeQuery("select big_text   from clob_test");

          // 5.处理结果

          while (rs.next()) {

             Clob clob = rs.getClob(1);

             Reader reader =  clob.getCharacterStream();

             // reader = rs.getCharacterStream(1);

             // String s = rs.getString(1);

             File file = new File("JdbUtils_bak.java");

             Writer writer = new BufferedWriter(new  FileWriter(file));

             char[] buff = new char[1024];

             for (int i = 0; (i = reader.read(buff)) > 0;) {

                 writer.write(buff, 0, i);

             }

             writer.close();

             reader.close();

          }

C

// 3.创建语句

          String sql = "insert into clob_test(big_text) values (?) ";

          ps = conn.prepareStatement(sql);

          File file = new File("src/com/hyneng/jdbc/JdbcUtils.java");

          Reader reader = new BufferedReader(new  FileReader(file));

          //字符流

          ps.setCharacterStream(1, reader, (int) file.length());

          // ps.setString(1, x);

          // 4.执行语句

          int i = ps.executeUpdate();

          reader.close();

        3.BLOBà blob(二进制类型)

          存:ps.setBinaryStream(i, inputStream, length);

     取:rs.getBinaryStream(i);

             rs.getBlob(i).getBinaryStream();

R

// 4.执行语句

          rs = st.executeQuery("select big_bit   from blob_test");

          // 5.处理结果

          while (rs.next()) {

             // Blob blob = rs.getBlob(1);

             // InputStream in = blob.getBinaryStream();

             InputStream in =  rs.getBinaryStream("big_bit");

             File file = new File("IMG_0002_bak.jpg");

             OutputStream out = new  BufferedOutputStream(

                    new  FileOutputStream(file));

             byte[] buff = new byte[1024];

             for (int i = 0; (i = in.read(buff)) > 0;) {

                 out.write(buff, 0, i);

             }

             out.close();

             in.close();

          }

C

// 3.创建语句

          String sql = "insert into blob_test(big_bit) values (?) ";

          ps = conn.prepareStatement(sql);

          File file = new File("IMG_0002.jpg");

          InputStream in = new  BufferedInputStream(new FileInputStream(file));

          ps.setBinaryStream(1, in, (int) file.length());

          // 4.执行语句

          int i = ps.executeUpdate();

          in.close();

本文链接:JDBC系列教程之五:数据类型,转自请注明:http://www.656463.com/article/799

相关问答

更多
  • Python数据类型[2022-10-18]

    python里变量类型是根据初始化的值的类型来自动识别的 dig_T1=1 那么dig_T1就是整型变量,python没有无符号类型,且整型字节数统一只有一种,有的机器上整型是12字节,有的是24字节 如果怎么写:dig_T1=1.0 那么dig_T1就是浮点型变量
  • java语言的基本数据类型指的是字节类型byte,短整型short,整型int,长整型long,布尔型boolean,字符类型char,单精度浮点类型float,双精度浮点类型double共八大基本数据类型;引用数据类型指的是类,枚举,接口和数组类型。 二者之间的区别在于,基本数据类型的变量,存储的就是数据本身的值,而引用类型的变量,存储的则是数据的地址,这个地址指向了数据的值。
  • java基本数据类型就8种,记住就好了。除了这些都是引用型的了。 java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 boolean(它只有两个值可取true false) 第四类:字符型 char 在栈中可以直接分配内存的数据是基本数据类型。 引用数据类型:是数据的引用在栈中,但是他的对象在堆中。 要想学好Java必须知道各种数据的在内存中存储位置。 对内存有了很好的了解,可以有助你分析程序。 字节: boolean ...
  • mysql数据类型[2022-03-28]

    这种数据给你两个建议 第一,用varchar类型,因为那个“L”是字符,无法保存成任何一种数字类型 第二,你可以分别建立两个字段,一个字段是体积,存“0.8”这样的数,另一个字段单位存"L" 不过第一种要是参与计算的情况下,会有些麻烦,所以建议你用第二种
  • MySql无法知道如何存储您的GEO对象,或者他的大小是多少。 您不应该按照您尝试的方式存储对象。 PreparedStatement#setObject()文档说: JDBC规范指定了从Java对象类型到SQL类型的标准映射。 在发送到数据库之前,给定的参数将转换为相应的SQL类型。 [...]如果存在歧义,此方法会抛出异常,例如,如果对象是实现上述多个接口的类的类。 MySql can't know how to store your GEO object, or what is his size. Y ...
  • POINT几何图形不需要特殊类型。 只需使用double精度等原始数据类型作为坐标。 例如,要通过lon和lat参数插入新的geography类型,请使用几何构造函数 : INSERT INTO my_table (geog) VALUES (ST_SetSRID(ST_MakePoint(:lon, :lat), 4326)::geography); 或者将它们作为浮点数返回,使用几何访问器函数 : SELECT ST_Y(geog::geometry) AS lat, ST_X(geog::geome ...
  • AFAIK该点是十进制值的标准表示法。 使用逗号可能会触发SQL解析错误,或者如果语法上下文允许逗号出现,可能会被忽略。 你是如何定义DECIMAL列的精度的? 如果是DECIMAL(10, 2) 10.215 DECIMAL(10, 2) ,它将总共有10个数字,其中2是十进制数值(小数点后10.215表示10.215保存为10.214变为10.21 )。 如果它是DECIMAL(10) ,它将不会有任何十进制值并被四舍五入为整数。 如果您使用FLOAT或DOUBLE PRECISION ,则不必指定小数 ...
  • 感谢Craig Ringer向我指出了真正的问题,我重写了我的河流,用“\ u0027”替换postgresql json查询中的简单引号,现在它工作得很好 Thanks to Craig Ringer who pointed me to the real problem, I rewrited my river, replacing the simple quotes in the postgresql json query with "\u0027", and now it works just fin ...
  • 您可以使用“BytesType”。 您可以使用AbstractSerializer.toByteBuffer()和AbstractSerializer.fromByteBuffer()轻松地将“BytesType”转换为您想要的数据类型。 You can use "BytesType". You can easily convert "BytesType" to/from your desired data type using AbstractSerializer.toByteBuffer() and A ...
  • 你的returnDataType方法总是返回表的第一列的类型。 你需要解决这个问题。 您应该使用预准备语句的参数元数据,或者使用DatabaseMetaData的列元数据。 或者至少访问右列索引。 你也改变了你的if分支。 类型4是java.sql.Types.INTEGER ,但您尝试将其设置为字符串,而类型12为java.sql.Types.VARCHAR ,但您尝试将其设置为整数(转换可能会失败) 。 旁注:您不应该使用整数值,如4,12,92和93,而应使用java.sql.Types常量INTEG ...