设为首页 收藏本站
查看: 2479|回复: 0

[经验分享] DB2数据库调用存储过程的方法及实例

[复制链接]

尚未签到

发表于 2016-11-16 09:28:57 | 显示全部楼层 |阅读模式
一、对存储过程的调用分三部分

1.连接(与数据库建立连接)

Class.forName(COM.ibm.db2.jdbc.net.DB2Driver).newInstance();

Connection con=DriverManager.getConnection(url,user,password);

2.注册输出参数

cs.registerOutParameter (3, Types.INTEGER);

3.调用存储过程:

CallableStatement cs=con.prepareCall({call store_name(参数,参数,参数)});

二、调用举例:

import java.net.URL;

import java.sql.*;

class test2

public static void main(String args[])

String url = jdbc:db2://wellhope/sample;

String user=db2admin;

String password=db2admin;

try

Class.forName(COM.ibm.db2.jdbc.net.DB2Driver).newInstance(); //与数据库建立连接

Connection con=DriverManager.getConnection(url,user,password);

checkForWarning(con.getWarnings());

DatabaseMetaData dma=con.getMetaData();

String str=This is a string;

//int hashcode=str.hashCode();

//System.out.println(Hashcode +hashcode);

//创建Statement对象,用于执行SQL语句

Statement stmt=con.createStatement();

//创建CallableStatement对象,用于执行存储过程

CallableStatement cs=con.prepareCall({call PRO_YHDL1(?,?,?)});

//注册输出参数

cs.registerOutParameter (3, Types.INTEGER);

int result = 0;

cs.setString(1,123);

cs.setString(2,123);

cs.execute();

result = cs.getInt (3);

dispResultSet(result);

cs.close();

con.close();

catch(SQLException ex)

System.out.println( * * * SQLException caught * * * );

while(ex!=null)

System.out.println(SQLState: +ex.getSQLState());

System.out.println(Message: +ex.getMessage());

System.out.println(Vendor: +ex.getErrorCode());

exex=ex.getNextException();

System.out.println();

catch(java.lang.Exception ex)

ex.printStackTrace();


三、存储过程举例:

Pro_yhdl1是一个存储过程,它的功能是从数据库表YHDL中取出PWD:



import java.sql.*;

public class Pro_yhdl1

public static void pro_yhdl1 ( String m_id,

String m_pwd,

int[] result ) throws SQLException, Exception

Connection con = DriverManager.getConnection(jdbc:default:connection);

PreparedStatement stmt = null;

ResultSet rs = null;

String sql;

String m_password=;

sql = SELECT

+ DB2ADMIN.YHDL.PWD

+ FROM

+ DB2ADMIN.YHDL

+ WHERE

+ (

+ (

+ DB2ADMIN.YHDL.ID = +m_id.trim() +

+ )

+ );

stmt = con.prepareStatement( sql );

rs = stmt.executeQuery();


while (rs.next())

m_password=rs.getString(1);

m_passwordm_password=m_password.trim();

if (rs.wasNull())

System.out.print(NULL);

else

System.out.print(m_password);

result[0] =1;

else

result[0] =0;


if (rs != null) rs.close();

if (stmt != null) stmt.close();

if (con != null) con.close();

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301028-1-1.html 上篇帖子: (转)DB2导出数据库表结构和数据 下篇帖子: 有关于DB2数据库连接的问题!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表