⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookdbao2.java

📁 用java编写的一个简单的购书系统
💻 JAVA
字号:
package DBAO2;
import BookClass.BookDetail;
import CItemClass.ShoppingCartItem;
import SCartClass.ShoppingCart;
import java.util.*;
import java.sql.*;




 public class BookDBAO2
{
	private ArrayList books=null;
	//private String url="jdbc:odbc:SCHOOL";
	private String DBNum="0";//来自BookDB
	private Connection con=null;	
	//private PreparedStatement prepStmt=null;
	//private ResultSet rs=null;
	
	
	
	//===============================================================
	
	
	
	
	//===============================================================
	
	//构造函数--连接数据库
	public BookDBAO2()
	{
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}catch(ClassNotFoundException e){
			System.out.println("加载驱动器异常");
		}
					
	
		try{
			con=DriverManager.getConnection("jdbc:odbc:SCHOOL");
		}catch(SQLException e){
			System.out.println("不能连接数据库");
		}
	}
	
	
	//关闭连接
	
	public void closedbao()
	{
		try{
			con.close();
		}catch(SQLException ex){
			System.out.println("关闭数据库异常"+ex.getMessage());
		}
	}
	
	//来自BookDB==============
	public void setDBNum(String DBNum)
	{
		this.DBNum=DBNum;
	}
	public String getDBNum()
	{
		return this.DBNum;
	}
	
	
    //查询数据库取得书目列表
     public List getBooks(){ //throws BooksNotFoundException
           books=new ArrayList();
           
           try{
               String selectStatement="select * from Book2";
               PreparedStatement prepStmt=con.prepareStatement(selectStatement);
               ResultSet rs=prepStmt.executeQuery();
               
               while(rs.next()){
                  BookDetail bd=
                      new BookDetail(rs.getString(1),rs.getString(2),
                          rs.getString(3),rs.getFloat(4),
                          rs.getString(5),rs.getInt(6));
                          
                  //if(rs.getInt(6)>0){
                       books.add(bd);
                  //}
                  
                  //以下是用来测试的打印--打印书的信息
                  /*
                  System.out.println(bd.getBDescription());
                  System.out.println(bd.getBName());
                  System.out.println(bd.getBNum());
                  System.out.println(bd.getBPrice());
                  System.out.println(bd.getBStore());
                  System.out.println(bd.getBWriter());*/
              }
              
              prepStmt.close();
              
            }catch(SQLException ex){
              System.out.println("查询数据库取得书目列表 异常");
              //throw new BooksNotFoundException(ex.getMessage());
            }
            
            Collections.sort(books);
            
            return books;
     }
     
     
     //得到书的全部信息(属性)
     public BookDetail getBookDetails(String BNum){ 
       /*throws BookNotFoundException*/
       try{
           String selectStatement="select BNum,BName,BWriter,BPrice,BDescription,BStore"+"from Book2 where BNum=?";
           PreparedStatement prepStmt=con.prepareStatement(selectStatement); 
           prepStmt.setString(1,BNum);
           
           ResultSet rs=prepStmt.executeQuery();
           
           if(rs.next()){
             BookDetail bd=
                      new BookDetail(rs.getString(1),rs.getString(2),
                          rs.getString(3),rs.getFloat(4),
                          rs.getString(5),rs.getInt(6));
             
             prepStmt.close();
             return bd;
       }else{
             prepStmt.close();                 
             //System.out.println("找不到书,书号:"+bookId);
       }
     }catch(SQLException ex){
        System.err.println(ex.getMessage());
        //throw new BookNotFoundException("Couldn't find book:"+bookId+
            //""+ex.getMessage());
     }
     return null;
   }
   
   
   //用ShoppingCart买书1
   public void buyBooks(ShoppingCart cart)/*throws OrderException*/{
        Collection items=cart.getItems();
        Iterator i=items.iterator();
        
        try{
            con.setAutoCommit(false);
            
            while(i.hasNext()){
                ShoppingCartItem sci=(ShoppingCartItem)i.next();
                BookDetail bd=(BookDetail)sci.getItem();
                String id=bd.getBNum();
                int quantity=sci.getQuantity();
                buyBook(id,quantity);
            }
            
            con.commit();
            con.setAutoCommit(true);
        }catch(Exception ex){
           try{
               con.rollback();
               /*throw new OrderException("Transaction failed:"+
                   ex.getMessage());*/
             }catch(SQLException sqx){
                 System.out.println("用ShoppingCart买书异常");
             }
        }
    }
    
    
   //买书2 
   public void buyBook(String BNum,int quantity)/*throws OrderException*/{
       try{
           String selectStatement="select BNum,BName,BWriter,BPrice,BDescription,BStore"+"from Book2 where BNum=?";
           PreparedStatement prepStmt=con.prepareStatement(selectStatement); 
           prepStmt.setString(1,BNum);
           
           ResultSet rs=prepStmt.executeQuery();
           
           if(rs.next()){
               int inventory=rs.getInt(6);
               prepStmt.close();
               
               if((inventory-quantity)>=0){
                   String updateStatement=
                        "update Book set BStore=inventory-?where BNum=?";
                   prepStmt=con.prepareStatement(updateStatement);     
                   prepStmt.setInt(1,quantity);
                   prepStmt.setString(2,BNum);
                   prepStmt.executeUpdate();
                   prepStmt.close();
               }else{
                  //throw new OrderException("Not enough of"+bookId+
                    //  "in stock to complete order.");
               }
           }
   }catch(SQLException ex){
       System.out.println("买书代码块出错");
   }
  }
  
 /*
  public static void main(String []args)
  {
  	BookDBAO dbao=new BookDBAO();
    dbao.getBooks();
  }
  */
  
}          
	




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -