• 12.JDBC


    /*使用JDBC处理大数据*/

      在实际开发中,程序需要把大文本或二进制数据保存到数据库中

      大数据LOB(Large Objects),LOB又分为clob和blob

      clob用来存储大文本 blob用于存储二进制数据,例如图像、声音、二进制等。

      对于MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为:

      TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT

      TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

    /*对于MySQL中的Text类型,可调用如下方法设置(过程:1.拿到st 2.拿到文件的路径 3.通过路径创建file对象 4.设置Text属性)*/

      PreparedStatment.setCharacterStream(index,reader,length);

    /*对于MySQL中Text类型,可调用如下方法获取 (过程:1.拿到rs 2.拿到reader 3.将reader中的数据读取到FileWriter)*/

      reader=resultSet.getCharacterStream(i);

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

      reader=resultSet.getString(i);

    /*对于MySQL中的BLOB类型,可调用如下方法设置: (过程:1.拿到st 2.拿到文件的路径 3.设置Blog属性) (和Text的设置大同小异)*/

      PreparedStatment.setBinaryStream(i,inputStream,length);

    /*对于MySQL中的BLOB类型,可调用如下方法获取: (过程:1.拿到rs 2.拿到InputStream(因为读取的是二进制,所以和Text有些区别) 3.将InputStream中的数据读取到FileWriter)*/

      InputStream in = resultSet.getBinaryStream(i);

      InputStream in = resultSet.getBlob(i).getBinaryStream();

    /*JDBC批处理*/ (批处理执行后,要清空下批处理 st.clearBatch())

    1.采用Statment.addBatch(sql)方式实现批处理

      优点:可以向数据库发送多条不同的SQL语句。

      缺点:1.SQL语句没有编译 2.当向数据库发送多条语句相同,但仅参数不同的SQL语句时(pst可以用?设定),需要重复写上很多条SQL语句

    2.实现批处理的第二种方式:

      PreparedStatement.addBatch();

    /*获取数据库自动生成的主键*/ (只对insert操作有效)

      PreparedStatment st = conn.prepareStatement(sql,Statement.RETURN_GENTURN_GENERATED_KEYS) (Statement.RETURN_GENTURN_GENERATED_KEYS 默认会加上)

      st.executeUpdate();

      ResultSet rs = st.getGeneratdKeys(); //得到 /*插入行*/ 的主键 

    /*JDBC调用存储过程*/

      1.编写存储过程

      2.在程序中调用

        得到CallableStatment,并调用存储过程(CallableStatement cStmt = connprepareCall("{call demoSp(?,?)}");

        设置参数,注册返回值,得到输出( cStmt.getString(1))

        cStmt.setString(1,"xxx"); 设置参数

        cStmt.registerOutParameter(2,Types.VARCHAR); 注册返回值

        cStmt.execute();

  • 相关阅读:
    laravel5.5
    yii2.0 Activeform表单部分组件使用方法
    putty连接远程局域网的MySql(不需要单独打开plink)
    关于 CentOS 自启动(服务、脚本)
    make -j 多核并行编译 导致笔记本过热 自动关机保护
    CentOS 7 引导 -- GRUB2
    Centos 7 拨号上网(PPPOE)
    Centos 7 意外断电如何处理
    Windows/Linux 生成iOS证书及p12文件
    git add -f
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7359196.html
Copyright © 2020-2023  润新知