1. 苏葳的备忘录首页
  2. 数据库

Java调用Sybase存储过程

java sybase jdbc jconnectSybase数据库有官方的jConnect驱动,也有开源驱动jTDS。jConnect常用的有4.5/5.5/6/7等版本,比如网上常见的jconnect3.jar这个文件就对应于jConnect的版本6。而开源驱动jTDS不仅用于Sybase,还可用于ms sqlserver,从中也可看出这两家数据库产品的历史渊源。只是今天看来,Sybase已经日趋没落了。一般企业应用开发,估计会更偏好官方驱动吧?下面是个Java用jConnect驱动连接Sybase并调用Sybase存储过程的例子:

//注意使用的是Sybaser的jConnect某版的驱动。
// 定义连接串
 static String urlsybase = "jdbc:sybase:Tds:192.168.100.1:4101/DATABASE?
charset=cp850&jconnect_version=6&is_closed_test=internal";
 static String userSybase = "user";
 static String passSybase = "password";
//   装入jdbc驱动
 static {
  try {
   Class.forName("com.sybase.jdbc3.jdbc.SybDriver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
//  循环连接
  while (!flag) {
   try {
    connSybase = DriverManager.getConnection(urlsybase, userSybase,
      passSybase);
    flag = true;
   } catch (SQLException e) {
    logger.warn("数据库连接失败,1分钟后重新连接");
    try {
     Thread.sleep(60000);
    } catch (InterruptedException e1) {
    }
   }
  }
  callSybSqlStr = "{? =call sybprocdure null, ?  }";
  try {
   callSybase = connSybase.prepareCall(callSybSqlStr);
   callSybase.registerOutParameter(1, java.sql.Types.SMALLINT);
   callSybase.registerOutParameter(2, java.sql.Types.VARCHAR);
   callSybase.setQueryTimeout(SqlTimeOut);
  } catch (SQLException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  } catch (java.lang.Exception ex) {
   ex.printStackTrace();
  }
   boolean rs = callSybase.execute();
   int retInt = callSybase.getInt(1);

 

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/574.html

发表评论

邮箱地址不会被公开。 必填项已用*标注