(未解決)IDEA JDBCデータベースのPreparedStatementてpstmt = dbconn.prepareStatement(SQL)NULLポインタエラーを照会設定

パッケージcom.demo。

輸入 java.io. * ;
インポート java.sqlの。* ;
輸入 java.utilの。* ;
インポートのjavax.servlet。* ;
輸入のjavax.servlet.http *。;
輸入javax.servlet.annotation.WebServlet; 
@WebServlet( "/queryproduct.do" パブリック クラス QueryProductServletが延びHttpServletを{
     プライベート 静的 最終 長いのserialVersionUID = 1L 
    接続dbconn = nullを公共 のボイドINIT(){ 
        文字列ドライバ = "com.jdbc.mysql.Driver" 
        文字列するDBURL = "はjdbc:mysqlの:// localhostを:3306 / prod_data" ; 
        文字列名 =「ルート」
        文字列のパスワード = "123456" ;
        試す{ 
            Class.forNameの(ドライバ)// 加载驱动程序
             // 创建连接对象 
            dbconn = したDriverManager.getConnection(するDBURL、ユーザ名、パスワード); 
        } キャッチ(ClassNotFoundExceptionがe1の){ 
            System.out.printlnは(E1)。
        } キャッチ(のSQLException E2){} 
    }

    公共 ボイドのdoPost(HttpServletRequestのリクエスト、
                       HttpServletResponseの応答)が
                    スローServletExceptionがのは、IOException { 
        文字列のProductID = request.getParameter( "商品コード" )。
        試す{ 
            文字列は、SQL = "WHEREのprod_id =製品SELECT * FROM?" ; 
            PreparedStatementてpstmt = dbconn.prepareStatement(SQL)。
            pstmt.setString( 1 、商品コード)。
            ResultSetのRST = pstmt.executeQuery()。
            // するSystem.out.println(SQL); 
            もし(rst.next()){
                製品製品 = 製品(); 
                product.setProd_id(rst.getString( "PROD_ID" )); 
                product.setPname(rst.getString( "PNAME" )); 
                product.setPrice(rst.getDouble( "価格" )); 
                product.setStock(rst.getInt( "株式" )); 
                。でrequest.getSession()のsetAttribute( "製品" 、製品)。
                response.sendRedirect( "displayProduct.jsp" ); 
            } { 
                response.sendRedirect(「エラー。
            } 
        } キャッチ(のSQLException E){ 
            e.printStackTrace(); 
        } 
    } 
}
<%@ページのcontentType = " text / htmlの;のcharset = UTF-8 " pageEncodingは= " UTF-8 " %> 
< htmlの> 
< ヘッド> < タイトル>商品查询</ タイトル> </ ヘッド> 
< 身体> 
< フォームアクション= "queryproduct.do" メソッド= "ポスト" > 
    请输入商品号:
    < 入力タイプ= "テキスト" 名前= "商品コード" サイズ=」15" > 
    < 入力タイプ= "提出" 値を"确定" = > 
</ フォーム> 
</ ボディ> 
</ HTML >
パッケージcom.demo。

インポートしたjava.io.Serializable; 

パブリック クラスの製品は、実装Serializableを{
     プライベート文字列のprod_idを。
    プライベート文字列のpname。
    プライベート ダブル価格。
    プライベート int型の株式。
    パブリック製品(){} 

    公共製品(文字列PROD_ID、文字列PNAME、二重価格、int型のストック){
         この .prod_id = PROD_ID。
        この .pname = pnameに。
        この .price = 価格。
        この .stock = 株式; 
    } 

    パブリック文字列getProd_id(){
         戻りPROD_ID。
    } 

    公共 ボイドsetProd_id(文字列PROD_ID){
         この .prod_id = PROD_ID。
    } 

    パブリック文字列getPname(){
         戻りPNAME。
    } 

    公共 ボイドsetPname(文字列PNAME){
         この .pname = PNAME。
    } 

    公共 ダブルgetPrice(){
         戻り価格。
    } 

    公共 ボイド setPrice(ダブル価格){
         この .price = 価格。
    } 

    公共 INT getStock(){
         戻りストックを、
    } 

    公共 ボイド setStock(int型のストック){
         この .stock = ストック。
    } 
}

エラー次のように:

 

おすすめ

転載: www.cnblogs.com/massionter/p/11074729.html