zoukankan      html  css  js  c++  java
  • JAVA 数据库编程(2)

     预备语句

    PrepareStatement(String sql)

    返回一个含预编译语句的PrepareStatement对象,字符串SQL代表了一个SQL语句,该语句可以包含一个或多个由?字符指明的参数占位符。

    Java.sql.PrepareStatement包含方法

      void setXxx(int n,Xxx x) //设置第n个参数值为x

      void clearParameter()//清除预备语句在的所有当前参数

      ResultSet executeQuery()//执行预备SQL查询,并返回一个ResultSet对象

      int executeUpdate()//返回影响行数。

    读写LOB

     除了数据、字符串和日期之外,许多数据库都可以存储大对象,如图片或其他数据。在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB。

    要从Blob中获取二进制数据,可以调用getByte或getInputStream.

    Clob中获取字符数据,可以通过调用getSubString 或getCharacterStream

        //读取
        PreparedStatement stat=conn.prepareStatement("select Cover from BookCovers where ISBN=?");
        stat.set(1,isbn);
        ResultSet result=stat.executeQuery();
        while(result.next())
        {
            Blob coverBlob=result.getBlob(1);
            Image coverImage=ImageIO.read(coverBlob.getBinaryStream());
        }
        
        //写入
        Blob coverBlob=connection.createBlob();
        int offset=0;
        OutputStream out=coverBlob.setBinaryStream(offset);
        ImageIO.write(coverImage,"PNG",out);
        PreparedStatement stat=conn.preparedStatement("insert into Cover value (?,?)");
        stat.set(1,isbn);
        stat.set(2,coverBlob);
        stat.executeUpdate();
  • 相关阅读:
    POJ 1142 Smith Numbers
    POJ 1171 Letter Game 解题思路
    人人德克萨斯牌出手规则整理
    OpenMP相关知识索引
    如何进行有效的沟通
    台哥算法练习:一个for循环打印九九乘法表
    啊哈,381654729!
    发牌的小窍门
    判断数abcdef能否被k整除(k属于[2,9])
    如何在数轴上找到一个数的倒数
  • 原文地址:https://www.cnblogs.com/zhuangjb/p/3123045.html
Copyright © 2011-2022 走看看