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

📄 assetdao.java~173~

📁 对2000元以上的资产管理
💻 JAVA~173~
字号:
package com.cdaccp.dao;

import com.cdaccp.entity.Asset;
import com.util.DBAccess;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
import java.util.ArrayList;
import java.sql.ResultSet;
import java.sql.*;

/**
 * 用于资产(Asset)类的增、删、改、查操作
 * <p>Title: 固定资产管理系统</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: 北大青鸟常德中心</p>
 * @author cdaccp.com
 * @version 1.0
 */
public class AssetDAO {

  /**
   * @param a Asset 包含资产数据的实体对象,从界面上收集
   * @return int 插入成功返回真,否则返回假
   */
  public boolean insert(Asset asset) {
    boolean result = false;
    String sql ="insert into asset (assetname,cateid,subcateid,price,"+
        "purchasedate,status,useby,onuse,remarks) values (?,?,?,?,?,?,?,?,?)";
    Connection con= DBAccess.getConnection();
    PreparedStatement pst = null;
    try {
      pst = con.prepareStatement(sql);
      pst.setString(1,asset.getName());
      pst.setInt(2,asset.getCateId());
      pst.setInt(3,asset.getSubCateId());
      pst.setDouble(4,asset.getPrice());
      pst.setString(5,asset.getPurchaseDate());
      pst.setInt(6,asset.getStatus());
      pst.setInt(7,asset.getUseBy());
      pst.setInt(8,0);
      pst.setString(9,asset.getRemarks());
      int i = pst.executeUpdate();
      if(i>0){
        result = true;
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }finally{
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }
    return result;
  }
  String select = " select a.* ,b.catename ,c.catename as subname from asset as a "+
      " inner join category as b on(a.cateid = b.cateid) "+
      " join category as c on(a.subcateid = c.cateid) ";  //查询语句;

  private Connection Connection;

  /**
   * 删除资产方法。同时要删除该资产对应的“借用”记录
   * @param assetId int 资产在数据库中的主键
   * @return boolean 返回删除是否成功,成功为true
   */
  public boolean deleteById(int assetId) {
    boolean result = false;
    Connection con= DBAccess.getConnection();
    PreparedStatement pst = null;
    return result;
  }

  /**
   * 修改资产方法。
   * @param a Asset 修改后的资产对象
   * @return boolean 返回修改是否成功,成功为true
   */
  public boolean modify(Asset asset) {
    boolean result = false;
    Connection con = DBAccess.getConnection();
   PreparedStatement pst = null;
    String sql ="update asset set assetname = ?,cateid = ? ,"+
        "subcateid =? ,price = ? , status = ? ,useBy = ? ,remarks = ? where assetid = ? ";
    try {
      pst = con.prepareStatement(sql);
      pst.setString(1,asset.getName());
      pst.setInt(2,asset.getCateId());
      pst.setInt(3,asset.getSubCateId());
      pst.setDouble(4,asset.getPrice());
      pst.setInt(5,asset.getStatus());
      pst.setInt(6,asset.getUseBy());
      pst.setString(7,asset.getRemarks());
      pst.setInt(8,asset.getId());
      int  i = pst.executeUpdate();
      if (i > 0) {
        result = true;
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }finally{
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }
    return result;
  }

  /**
   * 按主键编号读取一个资产。
   * @param assetId int 资产主键编号
   * @return Asset 资产实体对象。如果该编号的资产不存在,则返回null
   */
  public List loadById(int assetId) {
    List list  = null;
    Asset asset = null;
    String sql = select+" where a.assetid = ?";
   Connection con = DBAccess.getConnection();
   PreparedStatement pst = null;
   ResultSet rs = null;
   try {
     pst = con.prepareStatement(sql);
     pst.setInt(1,assetId);
     rs = pst.executeQuery();
     list = new ArrayList();
     if (rs.next()) {
       list.add(addAssetOrver(rs));//调用方法为Asset每个属性赋值,最后将asset对象加入到集合中
     }
     rs.close();
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }finally{
     DBAccess.closeStatement(pst);
     DBAccess.closeConnection(con);
   }
    return list;
  }

  /**
   * 获取所有资产信息集合
   * 当有0或1的参数传入的时候查询没被借出或以借去的资产 并且状态为正常和资产信息
   * 其它参数传入查询所有资产信息
   * @return List
   */
  public List loadAllAsset(int onuse) {
    List list = new ArrayList();
    Asset asset = null;
    String sql = select;
    Connection con = DBAccess.getConnection();
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
      if(onuse !=1 && onuse != 0){
        pst = con.prepareStatement(sql);
      rs = pst.executeQuery();
      }else{
        sql = select+" where a.onuse = ? and a.status = 0 ";
        pst = con.prepareStatement(sql);
        pst.setInt(1, onuse);
        rs = pst.executeQuery();
      }
      while (rs.next()) {
        list.add(addAssetOrver(rs)); //调用方法为Asset每个属性赋值,最后将asset对象加入到集合中
      }
      rs.close();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    finally {
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }
    return list;
  }

  /**
   * 该方法可用于取得最后一个插入数据库的资产的编号(自动增长而来),
   * @return int 资产编号
   */
  private int getNewAssetId() {
    int newAssetId = -1;
    Connection conn = DBAccess.getConnection();
    PreparedStatement stmt = null;
    ResultSet rs = null;
    String sql = "select @@identity"; //取得数据库中最后插入的资产的编号(自动增长的值)
    try {
      stmt = conn.prepareStatement(sql);
      rs = stmt.executeQuery();
      if (rs.next()) {
        newAssetId = rs.getInt(1);
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    finally {
      DBAccess.closeConnection(conn);
    }
    return newAssetId;
  }

  /**
   * 根据大类编号读取该大类下所有资产
   * @param cateId int 大类编号
   * @return List 资产实体对象集合。如果该大类下一个资产都没有,则此list中没有元素
   */
  public List loadByCateId(int cateId) {
    List list = new ArrayList();
    String sql =select+" where a.cateid = "+
        "(select cateid from category where cateid = ? and parentid = 0) ";
    Connection con = DBAccess.getConnection();
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
      if (cateId ==0) {
        sql = select;
        pst  = con.prepareStatement(sql);
        rs = pst.executeQuery();
      }else{
      pst = con.prepareStatement(sql);
      pst.setInt(1,cateId);
      rs = pst.executeQuery();
      }
      while (rs.next()) {
        list.add(addAssetOrver(rs)); //调用方法为Asset每个属性赋值,最后将asset对象加入到集合中
      }
      rs.close();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }finally{
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }
    return list;
  }

  /**
   * 读取某个大类编号的一个小类编号下所有资产
   * @param cateId int 大类编号
   * @param subcateId int 该大类下的小类编号
   * @return List 资产实体对象集合。如果该类下一个资产都没有,则此list中没有元素
   */
//
  public List loadBySubcateId(int cateId, int subcateId) {
    List list = new ArrayList();
    String sql = select+ "where a.cateid = ? and a.subcateid = ? ";
    Connection con = DBAccess.getConnection();
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
      pst = con.prepareStatement(sql);
      pst.setInt(1,cateId);
      pst.setInt(2,subcateId);
      rs = pst.executeQuery();
      while (rs.next()) {
        list.add(addAssetOrver(rs)); //调用方法为Asset每个属性赋值,最后将asset对象加入到集合中
      }
      rs.close();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }finally{
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }

    return list;
  }

  /**
   * 根据资产名字模糊查找。例如传入“计”可以找到“计算机”和“计时器”等所有以“计”开头
   * 的资产。模糊查询的原理是使用SQL语句的通配符。 ... where name like '计%'
   * @param name String 资产名称片段
   * @return List 资产实体对象集合。如果没有找到任何资产,则此list中没有元素
   */
  public List loadByName(String name) {
    List list = new ArrayList();
    String sql =select+ "where a.assetname like '"+name+"%' ";
    Connection con = DBAccess.getConnection();
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
      pst = con.prepareStatement(sql);
      rs = pst.executeQuery();
      while (rs.next()) {
        list.add(addAssetOrver(rs)); //调用方法为Asset每个属性赋值,最后将asset对象加入到集合中
      }
      rs.close();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }finally{
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }
    return list;
  }

  /**
   * 查询指定状态(已借出或没借出)所有的资产
   * @return List 资产实体对象集合。如果没有找到任何资产,则此list中没有元素
   * @param onUse int 1—借出,0—未借出
   * @return List
   */
  public List loadByUse(int onUse) {
    List list = new ArrayList();
    Connection conn = DBAccess.getConnection(); //定义连接对象
    PreparedStatement pstmt = null; //定义SQL语句执行对象
    ResultSet rs = null; //定义结果集对象
    String sql =select+ " where a.onuse ="+onUse;
    try {
      pstmt = conn.prepareStatement(sql);
      rs = pstmt.executeQuery(); //执行查询
      while (rs.next()) {
        list.add(addAssetOrver(rs)); //调用方法为Asset每个属性赋值,最后将asset对象加入到集合中
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    finally {
      DBAccess.closeConnection(conn);
    }
    return list; //返回集合对象
  }
  /**
   * 修改资产使用状态
   * @param args String[]
   */
  public boolean  updateAssetOnuse(int assetid ,int onuse){
    boolean b = false;
    Connection con = DBAccess.getConnection();
    PreparedStatement pst = null;
    String sql = "update asset set onuse = ? where assetid = ?";
    try {
      pst = con.prepareStatement(sql);
      pst.setInt(1,onuse);
      pst.setInt(2,assetid);
      int i = pst.executeUpdate();
      if(i>0){
        b = true;
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }finally{
      DBAccess.closeStatement(pst);
      DBAccess.closeConnection(con);
    }
    return b;
  }
  /**
   * 用来为资产表的每个属性赋值
   * @param rs ResultSet
   * @return Asset 返回一条资产信息
   * @throws SQLException
   */
  public Asset addAssetOrver(ResultSet rs) throws SQLException {
    Asset asset = new Asset();
    asset.setId(rs.getInt("assetId"));
    asset.setName(rs.getString("assetname"));
    asset.setCateId(rs.getInt("cateId"));
    asset.setSubCateId(rs.getInt("subcateId"));
    asset.setPrice(rs.getDouble("price"));
    asset.setPurchaseDate(rs.getString("purchaseDate"));
    asset.setStatus(rs.getInt("status"));
    asset.setUseBy(rs.getInt("useby"));
    asset.setRemarks(rs.getString("remarks"));
    asset.setOnUse(rs.getInt("onUse"));
    asset.setCateName(rs.getString("catename"));
    asset.setSubName(rs.getString("subname"));
    return asset;
  }
}

⌨️ 快捷键说明

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