簡體   English   中英

Java中的插入存儲過程值未存儲在sql表中

[英]Insertion stored procedure values in java not get stored in sql table

已加入:2010年6月7日帖子:1

[發布新]今天發布12:53:46 Quote Edit幫助我,

我使用struts2框架工作,正在將值發送到db方法,並且我已經編寫了代碼,我的try塊在控制台中沒有執行err msg,我得到了msg存儲過程exe succ,但是我的值未插入表中。 在sql存儲過程中,給出了4個輸入參數和4個輸出參數。 我在調試模式下獲得了輸入參數的值,而該參數是我從表單bean獲得的,但沒有輸出參數的值,在此添加我的代碼,請幫助我解決這個錯誤。

package db;

import java.util.List;
import java.sql.*;

import hbsbean.AddNewFieldsBean;

public class ApplicationStoredDB {
    public List<AddNewFieldsBean> storeNewRecords(AddNewFieldsBean bean) {
        List<AddNewFieldsBean> nbean = null;
        Connection conn = null;
        String jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
        String dbURL = "jdbc: odbc:sqlserver";
        String usernameDbConn = "root";
        String passwordDbConn = "hbsroot";
        try {
            Class.forName(jdbcDriver).newInstance();
            conn = DriverManager.getConnection(dbURL, usernameDbConn,
                    passwordDbConn);
        } catch (Exception e) {
            System.out.println("jdbc driver not found:" + dbURL);
            e.printStackTrace();
        }

        try {
            // make a callable statement for a stored procedure.

            CallableStatement cstmt = conn
                    .prepareCall("{call proc_application_menu(?, ?, ?, ?, ?, ?, ? ,?)}");

            // set the values of the stored procedure's input parameters

            System.out.println("calling stored procedure . . .");
            for (int i = 0; i < bean.getAppName().length; i++) {

                cstmt.setString(1, bean.getAppName()[i]);
                cstmt.setString(2, bean.getBasepath()[i]);
                cstmt.setString(3, bean.getDesc()[i]);
                cstmt.setString(4, bean.getUsername());

                // output params in sql
                cstmt.registerOutParameter(5, Types.INTEGER);
                cstmt.registerOutParameter(6, Types.INTEGER);
                cstmt.registerOutParameter(7, Types.VARCHAR);
                cstmt.registerOutParameter(8, Types.VARCHAR);
                cstmt.execute();
            }
            // now that the input parameters are set, we can proceed to execute
            // the insertTheForm stored procedure

            cstmt.close();
            System.out.println("Stored procedure executed succesfully.....");
        }

        catch (SQLException e) {
            System.out.println("error: " + e);
            e.printStackTrace();

        }

        return nbean;
    }
}

重新閱讀問題后進行了編輯:

如果getAppName()。length為零,則不會調用執行。 可能是這樣嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM