您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 使用存储过程的传出参数
CREATETABLEstudent2(numbervarchar(6)primarykey,--学号namevarchar(8)notnullunique,--姓名passwordvarchar(6)notnull,--密码)GOINSERTstuVALUES('000001','黎明','111111')INSERTstuVALUES('000002','赵怡春','222222')INSERTstuVALUES('000003','张富平','333333')INSERTstuVALUES('000004','白丽','444444')INSERTstuVALUES('000005','牛玉德','555555')INSERTstuVALUES('000006','姚华','666666')INSERTstuVALUES('000007','李南','777777')GOCREATETABLEgrade(numbervarchar(6),--学号coursevarchar(20),--课程名称gradeint,--成绩CONSTRAINTPK_gradePRIMARYKEYCLUSTERED(number,course))GOINSERTINTOgradeVALUES('000001','C++',56);INSERTINTOgradeVALUES('000002','Java',90);INSERTINTOgradeVALUES('000004','Java',77);INSERTINTOgradeVALUES('000005','英语',91);INSERTINTOgradeVALUES('000004','C++',76);INSERTINTOgradeVALUES('000003','C++',67);INSERTINTOgradeVALUES('000001','英语',78);INSERTINTOgradeVALUES('000002','C++',74);INSERTINTOgradeVALUES('000002','英语',86);INSERTINTOgradeVALUES('000003','Java',80);INSERTINTOgradeVALUES('000004','英语',90);GOCREATEPROCEDUREGetAverageGradeFromStuName@stuNamevarchar(8),@gradefloatoutputASSelect@grade=avg(grade)fromstudent2innerjoingradeonstudent2.number=grade.numberwherename=@stuNamepackagedatabasevisit;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.Types;importjavax.swing.JOptionPane;publicclassOutcomingParametersUsingTheStoredProcedure{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubConnectioncon=null;CallableStatementcstm=null;ResultSetrs=null;ResultSetMetaDatarsmd=null;Stringname=JOptionPane.showInputDialog(请输入学生姓名);try{//System.out.println(name);Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);con=DriverManager.getConnection(jdbc:sqlserver://localhost:1433;DatabaseName=test,sa,jocean);cstm=con.prepareCall({callGetAverageGradeFromStuName(?,?)});cstm.setString(1,name);cstm.registerOutParameter(2,Types.FLOAT);cstm.execute();System.out.println(name+的平均成绩为:+cstm.getString(2));}catch(Exceptione){System.out.println(e.getMessage());}finally{try{rs.close();cstm.close();con.close();}catch(Exceptione){System.out.println(e.getMessage());}}}}
本文标题:使用存储过程的传出参数
链接地址:https://www.777doc.com/doc-2687222 .html