当前位置:  技术问答>java相关

java怎样执行sqlserver的存储过程

    来源: 互联网  发布时间:2017-05-03

    本文导语:  不知哪个位高手知道怎么样在java种执行sqlserver的存储过程 | import java.sql.*; /*  *create proc returnvaluetest as begin return 1234 end create proc outvaluetest  @outshort smallint output, @outint int  output, @outstr...

不知哪个位高手知道怎么样在java种执行sqlserver的存储过程

|
import java.sql.*;
/*
 *create proc returnvaluetest
as
begin
return 1234
end


create proc outvaluetest
 @outshort smallint output,
@outint int  output,
@outstr varchar(10) output
as
begin
set @outshort=123
set @outint=1234567
set @outstr='aaabbb'
return 1234
end

GO


CREATE PROCEDURE inserttable1
@name char(10)
 AS
insert into table1(createdate,fixlenstr) values(getdate(),@name)
return @@IDENTITY
GO


 **/
public class StoredProc
{
public static void main1(String args[])throws Exception
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;"
                + "user=masterz;password=sa;DatabaseName=NorthWind");
        CallableStatement cstmt=null;
        cstmt=con.prepareCall("{?=call returnvaluetest()}");
        cstmt.registerOutParameter(1,Types.INTEGER);
cstmt.execute();
    int returnValue=cstmt.getInt(1);
    System.out.println("returnValue:"+returnValue);
    cstmt.close();
    con.close();
}
public static void main(String args[])throws Exception
{
sqlfirst();
spfirst();
}
public static void spfirst()throws Exception
{
System.out.println();
System.out.println("call sp before sql");
        CallableStatement cstmt=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
long lstart=0;
long lstart2=0;
long sptime=0;
long sqltime=0;
        Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;"
                + "user=masterz;password=sa;DatabaseName=NorthWind");
                
lstart=System.currentTimeMillis();
    callsp(con);
    callsp(con);
    callsp(con);
    callsp(con);
    callsp(con);
    callsp(con);
    
    lstart2=System.currentTimeMillis();
    sptime=lstart2-lstart;
    callsql(con);
    callsql(con);
    callsql(con);
    callsql(con);
    callsql(con);
    callsql(con);
    
    sqltime=System.currentTimeMillis()-lstart2;
    con.close();
   System.out.println("first execution time:"+sptime+";second:"+sqltime);
    
}
public static void sqlfirst()throws Exception
{
System.out.println();
System.out.println("callsql before sp");
        CallableStatement cstmt=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
long lstart=0;
long lstart2=0;
long sptime=0;
long sqltime=0;
        Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;"
                + "user=masterz;password=sa;DatabaseName=NorthWind");
                
lstart=System.currentTimeMillis();
    callsql(con);
    callsql(con);
    callsql(con);
    callsql(con);
    callsql(con);
    callsql(con);
    
    lstart2=System.currentTimeMillis();
    sptime=lstart2-lstart;
    callsp(con);
    callsp(con);
    callsp(con);
    callsp(con);
    callsp(con);
    callsp(con);
    
    sqltime=System.currentTimeMillis()-lstart2;
    con.close();
   System.out.println("first execution time:"+sptime+";second:"+sqltime);
    
}

public static void callsp(Connection con)throws Exception
{
long start=System.currentTimeMillis();
        CallableStatement cstmt=con.prepareCall("{?=call inserttable1(?)}");
        int index=1;
        cstmt.registerOutParameter(index,Types.INTEGER); index++;
        cstmt.setString(index,"aaa");
cstmt.execute();
    int returnValue=cstmt.getInt(1);    
    cstmt.close();
    System.out.println("SP returnValue:"+returnValue+" use "+(System.currentTimeMillis()-start));
}
public static int callsql(Connection con)throws Exception
{
long start=System.currentTimeMillis();
    String insertsql="INSERT INTO Table1 (createdate, fixlenstr) VALUES (GETDATE(), ?)";
    PreparedStatement ps=con.prepareStatement(insertsql);
    ps.setString(1,"aaa");
    ps.executeUpdate();
    String getautoidsql="SELECT max(autoid) from table1";
    Statement st=con.createStatement();
    ResultSet rs=st.executeQuery(getautoidsql);
    int ret=0;
    if(rs.next())
    ret=rs.getInt(1);
    rs.close();
    ps.close();
    st.close();
    System.out.println("SQL ret:"+ret+" use "+(System.currentTimeMillis()-start));
    return ret;

}
public static void main2(String args[])throws Exception
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;"
                + "user=masterz;password=sa;DatabaseName=NorthWind");
        CallableStatement cstmt=null;
        cstmt=con.prepareCall("{?=call outvaluetest(?,?,?)}");
        int index=1;
        cstmt.registerOutParameter(index,Types.INTEGER); index++;
        cstmt.registerOutParameter(index,Types.INTEGER); index++;
        cstmt.registerOutParameter(index,Types.INTEGER); index++;
        cstmt.registerOutParameter(index,Types.VARCHAR); index++;
cstmt.execute();
    int returnValue=cstmt.getInt(1);
   
    System.out.println("returnValue:"+returnValue);
    System.out.println("short value:"+cstmt.getShort(2));
    System.out.println("int value:"+cstmt.getInt(3));
    System.out.println("string value:"+cstmt.getString(4));
    cstmt.close();
    con.close();
}

}

|
http://www.fanqiang.com/a4/b5/20010530/180801279.html

-----------------------------------------------------------------
欢迎访问:http://CoolSlob.fykj.com/
本站◆第一主打:《查询利器》,在这里你可以查询CSDN FAQ---目前唯一可查询的站点(CSDN自身也不支持)
  ◆第二主打:《CSDN精华贴》,在这里你可以看到网友们出奇的搞笑本领;可以看到网友们高深莫测的技术功底:)
  ◆第三主打:《下载专区》,在这里你可以下载到C++ Primer 3rd这样的经典书籍,可以下载到够Inside的《Insdie SQL Server7.0》,前些时候,我本人就是借助这本书来破解MS SQL Server数据库的.mdf和.ldf文件的:)
  ◆只要有大家的支持,网站有可能加入搜索“CSDN精华贴”功能!

    
 
 

您可能感兴趣的文章:

  • 怎么安装java需要专用的sqlserver驱动,那里有下载
  • !!!在Java中如何取得Resultset中的datetime和timestamp字段?数据库是SQLServer
  • 我和我的朋友机器联网了,我的我的java程序(用jdbc驱动)可以连到他的sqlserver.但不可以连到我自己的。但我的java程序(用jdbc-odbc桥)连
  • java访问sqlserver出错:高手快来帮忙啊!!!
  • 怎样解决出现java.sql.SQLException: [Microsoft][SQLServer JDBC Driver][erver]String or binary data would be truncated.问题?
  • 如何用java将一个文件以字节流形式保存到sqlserver数据库中(给高分)
  • 有关java和sqlServer-----在线等待
  • java sqlserver text 类型字段读取方法
  • java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.(在线)
  • java连接SQLSERVER数据库和执行SQL语句?
  • 别走大侠,能告诉我怎样用JAVA连接MDB,SQLSERVER 我只有86分了全给你。
  • 如何用JAVA连接sqlserver 2000
  • 令人头痛的问题:java中SqlServer数据库查询程序,运行的结果与实际不符
  • 急救:java.lang.NullPointerException jspsmart测试图片直接上传存到sqlserver数据库
  • java将类序列化并存储到mysql(使用hibernate)
  • java调用sql server存储过程,如何取存储过程返回码(不是结果集)
  • 请问各位大侠怎样在java中调用存储过程和接受存储过程的返回参数
  • 使用Statement.java里的execute执行存储过程问题
  • java调用存储过程问题。
  • 各位你们用 JAVA 做MRP软件用"存储过程"吗 ?
  • java数据存储的问题
  • 在SQL server 2000中用JAVA实现图片存储
  • 如何用java对mysql存储文件
  • java调用存储过程的错误
  • 请一下java中组数的存储结构是怎么样的??
  • Java怎么调用存储过程?给个例子吧?
  • java能否调用SQL-SERVER存储过程呢?如果能?如何调?
  • 帮我看一下程序,java调用oracle数据存储的问题?
  • 请问Java里怎样存储不定数目的数据?
  • java如何用jdbc调sybase的存储过程(用事务)
  • 哪位知道在java和c中float类型量所占四个字节的组织形式?(比如1.23是如何存储的?)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • 如何用JAVA执行本机Linux操作系统的可执行文件?一定给分!在线等待!
  • 我刚看java,知道它的目标代码是解释执行的,目标执行速度快吗?
  • 怎么在java程序中执行系统命令或其他可执行程序(像批处理一样)?
  • 请问JAVA如何执行(调用)操作系统命令,如dir,然后把执行结果存入变量或文件,谢谢!
  • 谁有办法用java执行于java.exe不在一个目录的class文件?
  • 在java中如何启动非java的可执行程序?
  • java里有什么函数可以检查 java 代码并执行它?
  • 请问大侠:都说JSP比ASP执行速度快, 但这和JAVA本身速度慢(靠虚拟机执行) 有何关系???
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行,请高手指点一下
  • 请问大侠:都说JSP比ASP执行速度快, 但这和JAVA本身速度慢(靠虚拟机执行)有何关系???
  • java怎样生成可执行文件?
  • msdos中如何用java命令执行程序
  • 急求:如何在linux定期执行某个java程序?(在线等!)
  • 如何定时执行一个java程序
  • java文件的执行问题.
  • 我在执行javac命令的时候没有问题,但是在执行java命令的时候却报如下错误
  • TEXTPAD怎么执行JAVA 的?
  • 请问如何在Java中执行SQL的块语句?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3