(1)jdbc执行预处理

PreparedStatment预备语句

eg:String sql="insert into user(id,name,birthday,money) values(5,'administrator',?,'1000000')";

PreparedStatement stmt=conn.prepareStatment(sql);

stmt.setTimestamp(1,new Timestamp(System.currentTimeMillis()));

stmt.execute();

(2)调用存储过程

对于标量函数 其调用字符串为{fn functionname(?,?)}/{fn functionname()}

对于存储过程 其调用字符串为{call proc(?,?)}/{call proc}/{call ?=proc(?,?)}

CallableStatement

无参数,无返回值的存储过程

String sql="{call test1()}";

CallableStatment stmt=conn.prepareCall(sql);

stmt.executeUpdate();

有参数,有返回值的存储过程

String sql="{call ?=test1(?)}";    //方式1

CallableStatment stmt=conn.prepareCall(sql);

stmt.setString(2,"test");

stmt.registerOutParameter(1,Type.Interger);

stmt.execute();

int result=stmt.getInt(1);

String sql="{call test1(?,?)}";    //方式2

CallableStatment stmt=conn.prepareCall(sql);

stmt.setString(1,"test");

stmt.registerOutParameter(2,Type.Interger);

stmt.execute();

int result=stmt.getInt(2);

(3)jdbc数据批处理

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

PreparedStatement stmt=conn.prepareStatement(sql);

for (int i=1;i<1000;i++){

stmt.setInt(1,i);

stmt.setString(2,"test");

stmt.setDate(3,new Date(System.currentTimeMillis()));

stmt.setFloat(4,1000);

stmt.addBatch(sql);

}

int[] result=stmt.executeBatch();

(4)LOB字段(BLOB,CLOB)处理

处理常用类与方法

java.sql.ResultSet

Blob getBlob(int columnIndex);

Blob getBlob(string columnLabel);

Clob getClob(int columnIndex);

Clob getClob(string columnLabel);

-----------------------------------------------------------------

java.sql.Blob

long length();

byte[] getBytes(long startPosition,long length);

InputStream getBinaryStream();

InputStream getBinaryStream(long startPosition,long length);

OutputStream setBinaryStream(long startPosition);

java.sql.Clob

long length();

byte[] getSubString(long startPosition,long length);

Reader getCharacterStream();

Reader getCharacterStream(long startPosition,long length);

Writer setCharacterStream(long startPosition);

-----------------------------------------------------------------

java.sql.Connection

Blob createBlob();

Clob createClob();

----------------------------------------------------------------

eg:

PreparedStament stmt=conn.prepareStatement("select pic from book where bokkid='1'");

ResultSet rt=stmt.executeQuery();

if(rt.next()){

Blob blob=rt.getBlob(1);

Image img=ImageIO.read(blob.getInputStream());

}

--------------------------------------------------------------------------------------------

Blob blob=conn.createBlob();

int offset=0;

OutputStream out=blob.setBinaryStream(offset);

ImageIO.write(img,"PNG",out);

PreparedStament stmt=conn.prepareStatement("insert into book values(?,?)");

stmt.setInt(1,1);

stmt.setBlob(2,blob);

stmt.executeUpdate();

--------------------------------------------------------------------------------------------

PreparedStament stmt=conn.prepareStatement("insert into book values(?,?)");

stmt.setInt(1,1);

File file=new File("E:\\text.txt");

FileReader reader=new FileReader(file);

BufferReader buffer=new BufferReader(reader);

stmt.setCharacterStream(2,buffer,3);

stmt.execute();

--------------------------------------------------------------------------------------------

PreparedStament stmt=conn.prepareStatement("select pic from book where id=1");

ResuleSet rs=stmt.exexcuteQuery();

if(rs.next()){

  String strTmp="";

Reader read=rs.getCharacterStream(1);

BufferReader br=new BufferReader(read);

File file=new File("E:\\text.txt");

FileWriter fw=new FileWriter(f);

BufferWriter bw=new BufferWriter(fw);

while((strTmp=br.readLine())!=null){

bw.writer(strTmp+"\n");

bw.flush();

}

bw.close();

fw.close();

br.close();

}

jdbc执行预处理,批处理,LOB字段处理,调用存储过程的更多相关文章

  1. ASP调用存储过程访问SQL Server

     ASP调用存储过程访问SQL Server 2011-02-15 10:22:57 标签:asp 数据库 sQL 存储过程 Server ASP和存储过程(Stored Procedures)的文章 ...

  2. JDBC第二篇--【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】

    这是我JDBC的第一篇 http://blog.csdn.net/hon_3y/article/details/53535798 1.PreparedStatement对象 PreparedState ...

  3. JDBC【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】

    1.PreparedStatement对象 PreparedStatement对象继承Statement对象,它比Statement对象更强大,使用起来更简单 Statement对象编译SQL语句时, ...

  4. 【转载】JDBC操作LOB字段

    转自:http://www.cnblogs.com/tengtao93/p/4984689.html 1.LOB(Large Objects)大对象,是用来存储大量的二进制和文本数据的一种数据类型(一 ...

  5. JDBC 学习笔记(二)—— 大数据+存储过程+批处理+事务管理

    本文目录:       1.使用JDBC处理大数据        2.使用JDBC处理大文本        3.使用JDBC处理二进制数据        4.Oracle中大数据处理        5 ...

  6. Java数据库连接——JDBC调用存储过程,事务管理和高级应用

    一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...

  7. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

  8. 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】

    疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...

  9. varchar2_to_blob,应用向数据库更新LOB字段时的超时问题

    将字符串转换为BLOB类型数据,写入服务器. 1,首先利用to_clob函数把varchar2字段转成 clob字段. 2  利用c2b上面函数将clob转成blob. 即: c2b(to_clob( ...

随机推荐

  1. 事件委托和JQ事件绑定总结

    事件委托: 比喻:事件委托的事例在现实当中比比皆是.比如,有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方 ...

  2. [Android] Google IAP unmaneged items服务器校验

    android IAP unmaneged items 服务器校验 当成功IAP以后, 会在google服务器记录此次购买的状态. 可以通过Google Play Android Developer ...

  3. 后台接收URL地址的参数

    其实很简单,只是写一下加强记忆 后台接收URL传递过来的参数有两种方法: 第一种用request接收 HttpServletRequest request = ServletActionContext ...

  4. java中的数据结构(集合|容器)

    对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的 ...

  5. 20145218&20145240 《信息安全系统设计基础》实验三 实时系统的移植

    课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡献大小排名)20145240 20145218 指导教师:娄嘉鹏 实验日期:2016.11.17 实验时 ...

  6. 常见http status code

    常见http status code 常见的状态码: HTTP: Status200– 服务器成功返回网页 HTTP: Status404– 请求的网页不存在 HTTP: Status503– 服务不 ...

  7. poj 1328 Radar Installation

    题目链接:http://poj.org/problem?id=1328 题意:给出海上有n个小岛的坐标,求发出的信号可以覆盖全部小岛的最少的雷达个数.雷达发射信号是以雷达为圆心,d为半径的圆,雷达都在 ...

  8. .net网站发布后的没有权限及被上传asp漏洞等问题

    前一阶段网站移到阿里云上,发现在线支付出现了问题,也接收不到银行返回的支付信息. 检查了源代码,发现是和支付有关的加密文件位置不对了,以前是放在e盘,现在新的是放在d盘,位置的信息是写死在代码中的.找 ...

  9. VPS/云主机 如何试用远程连接登录主机服务器_

    1.windows主机如何远程登录 点本地电脑开始>运行(或者按"window+R")>输入mstsc点确定 弹出远程连接的框输入IP连接,  如果是VPS,直接输入I ...

  10. shell-参数做下标

    test.sh #!/bin/bash#用第3个参数作为下标或position,来获取参数param=$(eval echo \$$3)echo "hello, $param"