1、 利用Statement对象进行数据修改。
第一步:在cn.edu.zucc.booklib.control. ProductsManager类中添加根据产品编号修改产品名称,单价,数量的方法 public void modifyProducts (Products p)throws BaseException
第二步:编写上述方法,要求输入参数p中的任何成员都不能为null,否则不执行修改任务,并抛出异常。
第三步:清空cn.edu.zucc.booklib.control. PublisherManager类中的main函数现有内容
第四步:在main函数中编写代码,通过调用上面实现的方法。要求main函数中调用两次上述函数,参数分别为一个有成员为null的产品,一个合法的产品。
package cn.edu.zucc.booklib.control; import java.util.Scanner; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import cn.edu.zucc.booklib.model.BeanBook; import cn.edu.zucc.booklib.model.Products; import cn.edu.zucc.booklib.util.BaseException; import cn.edu.zucc.booklib.util.BusinessException; import cn.edu.zucc.booklib.util.DBUtil; import cn.edu.zucc.booklib.util.DbException; import java.sql.Connection; public class ProductsManager { public void modifyProducts (Products p) throws BaseException { Connection conn = null; try { conn = DBUtil.getConnection(); String sql = "update products set ProductName = '" + p.getProductName() + "'," + "UnitPrice = " + p.getUnitPrice() + ",UnitsInStock = " + p.getUnitsInStock() + " where ProductID = " + p.getProductID(); System.out.println(sql); java.sql.Statement st =conn.createStatement(); st.execute(sql); } catch (SQLException e) { e.printStackTrace(); throw new DbException(e); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void main(String[] args) { //精确查询 try { Products p =new Products(); Scanner input = new Scanner(System.in); int tt = input.nextInt(); p.setProductID(tt); String s = input.next(); p.setProductName(s); double ttt = input.nextDouble(); p.setUnitPrice(ttt); ttt=input.nextDouble(); p.setUnitPrice(ttt); (new ProductsManager()).modifyProducts (p); } catch (BaseException e) { e.printStackTrace(); } } }