java - 从存储过程返回空值

标签 java mysql stored-procedures eclipse-plugin

我有返回用户名的存储过程。我正在从 java(EclipseIDE) 调用存储过程。存储过程的返回值为 Null。如何避免此 Null 值。
这是我的存储过程

USE `employee`;
DROP procedure IF EXISTS `add1`;
DELIMITER $$
USE `employee`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `add1`(IN UserId int,
                                                   IN UserFirstName varchar(50),
                                                   IN UserLastName varchar(50),
                                                   IN Education varchar(50),
                                                   IN MarksInME int,
                                                   IN MarksInBE int,
                                                   IN MarksInPUC int,
                                                   IN Gender varchar(50),
                                                   OUT UserName varchar(50))
  BEGIN
    declare varName varchar(50);
    select UserFirstName into varName from User where UserId=3516;
    set UserName=varName;
    insert into   user(UserId,UserFirstName,UserLastName,Education,MarksInME,MarksInBE,MarksInPUC,Gender)
    values(UserId,UserFirstName,UserLastName,Education,MarksInME,MarksInBE, MarksInPUC,Gender);

  END$$
DELIMITER ;

我正在调用存储过程:

    java.sql.CallableStatement cStmt = conn.prepareCall("{call add1(?,?,?,?,?,?,?,?,?)}");
    cStmt.setInt(1,3541);    
    cStmt.setString(2,"pALLAVI"); 
    cStmt.setString(3,"K"); 
    cStmt.setString(4,"BE"); 
    cStmt.setInt(5,0);  
    cStmt.setInt(6,60); 
    cStmt.setInt(7,600);  
    cStmt.setString(8,"chetana@gmail.com"); 
    cStmt.registerOutParameter(9, java.sql.Types.VARCHAR);
    cStmt.execute();
    userName = cStmt.getString(9);

当我尝试打印 UserName 时,它​​打印为 Null?

最佳答案

UserId 是硬编码的:

select UserFirstName into varName from User where UserId=3516;

请检查以下查询:

call add1(3541,'pALLAVI','K','BE',0,60,600,'chetana@gmail.com',@UserName);
SELECT @UserName;

关于java - 从存储过程返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27032274/

相关文章:

java - 为什么aspose word RunparentNode可以是StructuredDocumentTag

java - 保留和释放数据

mysql - 损坏的 MySQL 表 - "Can' t 查找文件“错误;有什么方法可以恢复丢失的 .myd 和 .myi 文件?

mysql - update命令更新表中所有数据

java - 无法获取maven安装路径

java - 我正在使用一个编辑文本,它已经是空白的,因为我想认识一些听众

java - 从 Vaadin 8 应用程序生成 HTML 页面并在新窗口中打开

c# - 在 DB 中自动聚合数据的最佳方法

mysql - 过滤存储过程的结果集

sql-server-2005 - 临时表上的 DBCC CHECKIDENT 为错误的用户抛出权限错误