Blog Archive

ExtJs 4 MVC Architecture tutorial using Java Servlets - Part 4

Click here for previous Chapter
So far we have discussed the complete ExtJs 4 MVC architecture and needed sources for our Item Maintenance application. We have started to work on the Server Side and created our Item bean.

Step 11: Define the Item utility function that will work with our database - ItemInformation.java

package com.as400samplecode.util;

import java.sql.Connection;          
import java.sql.ResultSet;           
import java.sql.SQLException;        
import java.sql.PreparedStatement;   
import java.util.ArrayList;

import javax.naming.Context;         
import javax.naming.InitialContext;  
import javax.sql.DataSource;         

public class ItemInformation {            

    Connection conn = null;             
    PreparedStatement stmt = null;      
    String sql = null;
    String company = null;

    int numberOfRows = 0;


    public ItemInformation(String company) {
        this.company = company;
    }

    //this method gets us a list of items based on the parameters start and limit
    //these parameters are sent to use by the ExtJs Grid paging toolbar
    //we use a scrollable resultset and position it to start from where we need our records
    public ArrayList<Item> getItems(String start, String limit) {  

        ArrayList<Item> itemList = new ArrayList<Item>();    

        try {       
            Context ctx = (Context) new InitialContext().lookup("java:comp/env");
            conn = ((DataSource) ctx.lookup("jdbc/mydb2")).getConnection(); 

            int skipRows = Integer.parseInt(start);
            numberOfRows = skipRows + Integer.parseInt(limit);

            sql = "Select ITEMNO,DESC1,DESC2,WEIGHT,STATUS " + 
            " from PRODUCTS where COMPANY = ? order by COMPANY,ITEMNO FETCH FIRST " + numberOfRows + " ROWS ONLY";                       

            stmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            stmt.setInt(1,Integer.parseInt(company)); 

            ResultSet rs = stmt.executeQuery();  
            rs.relative(skipRows);
            
            while(rs.next()){ 
                Item item = new Item();
                item.setItem(rs.getString("ITEMNO").trim());
                item.setDesc1(rs.getString("DESC1").trim());
                item.setDesc2(rs.getString("DESC2").trim());
                item.setWeight(Double.parseDouble(rs.getString("WEIGHT").trim()));
                item.setStatus(rs.getString("STATUS").trim());
                itemList.add(item);
            }                                                                          

            rs.close();                                                                
            stmt.close();                                                              
            stmt = null;                                                               


            conn.close();                                                              
            conn = null;                                                    

        }                                                                
        catch(Exception e){System.out.println(e);}                       

        finally {                                                        
            
            if (stmt != null) {                                             
                try {                                                          
                    stmt.close();                                                 
                } catch (SQLException sqlex) {                                 
                    // ignore -- as we can't do anything about it here            
                }                                                              

                stmt = null;                                             
            }                                                         

            if (conn != null) {                                       
                try {                                                    
                    conn.close();                                           
                } catch (SQLException sqlex) {                           
                    // ignore -- as we can't do anything about it here      
                }                                                        

                conn = null;                                             
            }                                                         
        }               

        return itemList;

    }   
    
    //this method gets us the Total Number of Items that we have in our database
    public int getTotalCount() {  

        int totalCount = 0; 

        try {       
            Context ctx = (Context) new InitialContext().lookup("java:comp/env");
            conn = ((DataSource) ctx.lookup("jdbc/mydb2")).getConnection(); 

            sql = "Select count(*) from PRODUCTS where COMPANY = ?";                       

            stmt = conn.prepareStatement(sql);
            stmt.setInt(1,Integer.parseInt(company)); 

            ResultSet rs = stmt.executeQuery();  
            while(rs.next()){ 
                totalCount = rs.getInt(1);
                break;
            }                                                                          

            rs.close();                                                                
            stmt.close();                                                              
            stmt = null;                                                               


            conn.close();                                                              
            conn = null;                                                    

        }                                                                
        catch(Exception e){System.out.println(e);}                       

        finally {                                                        
            
            if (stmt != null) {                                             
                try {                                                          
                    stmt.close();                                                 
                } catch (SQLException sqlex) {                                 
                    // ignore -- as we can't do anything about it here            
                }                                                              

                stmt = null;                                             
            }                                                         

            if (conn != null) {                                       
                try {                                                    
                    conn.close();                                           
                } catch (SQLException sqlex) {                           
                    // ignore -- as we can't do anything about it here      
                }                                                        

                conn = null;                                             
            }                                                         
        }               

        return totalCount;

    }   

    //this methods loops thru an arraylist of Items and update the changed information
    public boolean updateItems(ArrayList<Item> itemList) {  

        boolean success = true;
        
        try {       
            Context ctx = (Context) new InitialContext().lookup("java:comp/env");
            conn = ((DataSource) ctx.lookup("jdbc/mydb2")).getConnection(); 

            sql = "UPDATE PRODUCTS set DESC1 = ?,DESC2 = ?,WEIGHT = ? where COMPANY = ? and ITEMNO = ?";
            stmt = conn.prepareStatement(sql);
            
            for(int i=0;i<itemList.size();i++){
                Item item = itemList.get(i);
                stmt.setString(1,item.getDesc1()); 
                stmt.setString(2,item.getDesc2()); 
                stmt.setDouble(3,item.getWeight()); 
                stmt.setInt(4,Integer.parseInt(company)); 
                stmt.setString(5,item.getItem()); 
                stmt.addBatch();
            }
            
            stmt.executeBatch();
            
            
            stmt.close();                                                              
            stmt = null;                                                               
            conn.close();                                                              
            conn = null;                                                    

        }                                                                
        catch(Exception e){
            
            success = false;
            System.out.println(e);
            
        }                       

        finally {                                                        
            
            if (stmt != null) {                                             
                try {                                                          
                    stmt.close();                                                 
                } catch (SQLException sqlex) {                                 
                    // ignore -- as we can't do anything about it here            
                }                                                              

                stmt = null;                                             
            }                                                         

            if (conn != null) {                                       
                try {                                                    
                    conn.close();                                           
                } catch (SQLException sqlex) {                           
                    // ignore -- as we can't do anything about it here      
                }                                                        

                conn = null;                                             
            }                                                         
        }               

        return success;

    }   

    //this method creates a new Item in the database
    public boolean addItems(ArrayList<Item> itemList) {  

        boolean success = true;
        
        try {       
            Context ctx = (Context) new InitialContext().lookup("java:comp/env");
            conn = ((DataSource) ctx.lookup("jdbc/mydb2")).getConnection(); 

            sql = "INSERT into PRODUCTS (COMPANY,ITEMNO,DESC1,DESC2,WEIGHT,STATUS) VALUES(?,?,?,?,?,?)";
            stmt = conn.prepareStatement(sql);
            
            for(int i=0;i<itemList.size();i++){
                Item item = itemList.get(i);
                stmt.setInt(1,Integer.parseInt(company)); 
                stmt.setString(2,item.getItem()); 
                stmt.setString(3,item.getDesc1()); 
                stmt.setString(4,item.getDesc2()); 
                stmt.setDouble(5,item.getWeight()); 
                stmt.setString(6,"A");
                stmt.addBatch();
            }
            
            stmt.executeBatch();
            
            
            stmt.close();                                                              
            stmt = null;                                                               
            conn.close();                                                              
            conn = null;                                                    

        }                                                                
        catch(Exception e){
            
            success = false;
            System.out.println(e);
            
        }                       

        finally {                                                        
            
            if (stmt != null) {                                             
                try {                                                          
                    stmt.close();                                                 
                } catch (SQLException sqlex) {                                 
                    // ignore -- as we can't do anything about it here            
                }                                                              

                stmt = null;                                             
            }                                                         

            if (conn != null) {                                       
                try {                                                    
                    conn.close();                                           
                } catch (SQLException sqlex) {                           
                    // ignore -- as we can't do anything about it here      
                }                                                        

                conn = null;                                             
            }                                                         
        }               

        return success;

    }   
}

Click here for next Chapter


4 comments :

  1. bên trong hạt châu. Ngay sau đó, trên bề mặt hạt châu xuất hiện một giọt

    chất lỏng.

    Sắc mặt Vương Lâm lộ vẻ vui mừng, hắn tiếp tục vừa thực hiện vừa chậm rãi gom góp chất lỏng.

    Bộ dáng của hồ lô đã hoàn toàn thay đổi, lớm vỏ màu lam bên ngoài đã ẩn

    hiện ánh sáng, mặc dù Vương Lâm nhưng khi vuốt chiếc hồ lô cũng cảm giác

    rùng hết cả mình.
    trung tâm kế toán tại quảng ninh trung tâm kế toán tại bình dương học kế toán tại đồng nai chotruongyen sieu nhan học kế toán tại huế dịch vụ thành lập doanh nghiệp công ty làm dịch vụ kế toán chung cư eco city long biên trà đá chém gió nguoicodanh trung tâm kế toán tại hoàng mai trung tâm kế toán dịch vụ báo cáo thuế công ty dịch vụ kế toán dịch vụ báo cáo tài chính cuối năm trung tâm kế toán tại đà nẵng

    Nếu để người ngoài sờ vào, chỉ sợ khi chạm vào thấy lạnh tới tận xương, máu huyết sẽ đông cứng lại.

    Cẩn thận cất hồ lô vào trong túi trữ vật, Vương Lâm lại lấy tiếp ra một

    cái hồ lô, đang muốn tiếp tục thổ nạp, đột nhiên ánh mắt hắn đảo qua

    thạch châu, nhất thời thần sắc thay đổi.

    Trên lớp vỏ thạch châu nguyên chỉ có một hình khắc lá cây mờ mờ, nhưng

    bây giờ đã xuất hiện thêm một cái, hai phiến lá cây cân xứng với nhau

    xuất hiện ở trên hạt châu.

    ReplyDelete

  2. The share your really gives us excitement. Thanks for your sharing. If you feel tired at work or study try to participate in our games to bring the most exciting feeling. Thank you!
    hotmail sign in | red ball game

    ReplyDelete