clientda.jav

来自「Java企业级开发项目实践,这是他的附光盘」· JAV 代码 · 共 223 行

JAV
223
字号
//---------------------------------------------------------
// Application: Crm of Enterprice
// Author     : eSingle
// File       : ClientDAO.java
//
// Copyright 2002 LandSoft Corp.
// Generated at Mon Nov 18 22:41:11 CST 2002
// Created by caoguangxin
// mailto:gxcao@mail.tsinghua.edu.cn
//---------------------------------------------------------

package com.landsoft.crm.dao;

import java.io.*;
import java.sql.*;
import java.util.*;
import javax.sql.*;

import com.landsoft.crm.model.*;
import com.landsoft.crm.util.CacheManager;

public class ClientDAO extends DAO {

  public ClientDAO(DataSource ds) {
    super(ds);
  }

  public void insert(Client client) throws SQLException {
    String sql;
    sql = "INSERT INTO client (clientname, classname, address, mail, phone, http) VALUES (?, ?, ?, ?, ?, ?)";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = ds.getConnection();
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, client.getClientname());
      pstmt.setString(2, client.getClassname());
      pstmt.setString(3, client.getAddress());
      pstmt.setString(4, client.getMail());
      pstmt.setString(5, client.getPhone());
      pstmt.setString(6, client.getHttp());
      pstmt.executeUpdate();
      pstmt.close();
      conn.commit();
    } catch (SQLException sqle) {
      close(rs);
      close(pstmt);
      rollback(conn);
      sqle.printStackTrace();
      throw sqle;
    } finally {
    	close(conn);
    }
  }

  public void update(Client client) throws SQLException {
  	Connection conn = null;
  	PreparedStatement pstmt = null;
    try {
      conn = ds.getConnection();
      String sql = "UPDATE client SET address=?, mail=?, phone=?, http=? WHERE clientname=? AND classname=?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, client.getAddress());
      pstmt.setString(2, client.getMail());
      pstmt.setString(3, client.getPhone());
      pstmt.setString(4, client.getHttp());
      pstmt.setString(5, client.getClientname());
      pstmt.setString(6, client.getClassname());
      pstmt.executeUpdate();
      close(pstmt);
      conn.commit();
    } catch (SQLException e) {
      close(pstmt);
      rollback(conn);
      e.printStackTrace();
    } finally {
    	close(conn);
    }
  }

  public void delete(String clientname, String classname) throws SQLException {
  	Connection conn = null;
  	PreparedStatement pstmt = null;
    try {
      conn = ds.getConnection();
      String sql = "DELETE FROM client WHERE clientname=? AND classname=?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, clientname);
      pstmt.setString(2, classname);
      pstmt.executeUpdate();
      close(pstmt);
      conn.commit();
    } catch (SQLException e) {
      close(pstmt);
      rollback(conn);
      e.printStackTrace();
    } finally {
    	close(conn);
    }
    String[] objKeys = {"Client", String.valueOf(clientname), String.valueOf(classname)};
    String objKey = CacheManager.createKey(objKeys);
    DAOCacheManager.invalidate(objKey);
  }

  public Client retrieve(String clientname, String classname) throws SQLException {
    String[] objKeys = {"Client", String.valueOf(clientname), String.valueOf(classname)};
    String objKey = CacheManager.createKey(objKeys);
    Client client = (Client) DAOCacheManager.getCache(objKey);
    if (client != null)
      return client;
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = ds.getConnection();
      String sql = "SELECT * FROM client WHERE clientname=? AND classname=?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, clientname);
      pstmt.setString(2, classname);
      rs = pstmt.executeQuery();
      if (rs.next()) {
        client = new Client();
        client.setClientname(rs.getString(1));
        client.setClassname(rs.getString(2));
        client.setAddress(rs.getString(3));
       client.setMail(rs.getString(4));
       client.setPhone(rs.getString(5));
       client.setHttp(rs.getString(6));

        populate(client, rs);
      }
      close(rs);
      close(pstmt);
    } catch (SQLException e) {
      close(rs);
      close(pstmt);
      rollback(conn);
      e.printStackTrace();
    } finally {
    	close(conn);
    }
    DAOCacheManager.putCache(client, objKey, 1);
    return client;
  }

  public List list() throws SQLException {
    String[] objKeys = {"Client", "list"};
    String objKey = CacheManager.createKey(objKeys);
    ArrayList list = (ArrayList) DAOCacheManager.getCache(objKey);
    if (list != null)
      return list;
    list = new ArrayList();
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = ds.getConnection();
      String sql = "SELECT address, mail, phone, http, clientname, classname FROM client";
      pstmt = conn.prepareStatement(sql);
      rs = pstmt.executeQuery();
      while(rs.next()) {
        Client client = new Client();
        client.setAddress(rs.getString(1));
        client.setMail(rs.getString(2));
        client.setPhone(rs.getString(3));
        client.setHttp(rs.getString(4));
        client.setClientname(rs.getString(5));
        client.setClassname(rs.getString(6));
        populate(client, rs);
        list.add(client);
      }
      close(rs);
      close(pstmt);
    } catch (SQLException e) {
      close(rs);
      close(pstmt);
      rollback(conn);
      e.printStackTrace();
    } finally {
    	close(conn);
    }
    DAOCacheManager.putCache(list, objKey, 1);
    return list;
  }

  public List list(int offset, int limit) throws SQLException {
    String[] objKeys = {"Client", "list", String.valueOf(offset), String.valueOf(limit)};
    String objKey = CacheManager.createKey(objKeys);
    ArrayList list = (ArrayList) DAOCacheManager.getCache(objKey);
    if (list != null)
      return list;
    list = new ArrayList();
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = ds.getConnection();
      String sql = "SELECT address, mail, phone, http, clientname, classname FROM client";
      pstmt = conn.prepareStatement(sql);
      rs = pstmt.executeQuery();
      if(offset > 0) rs.absolute(offset);
      int recCount = 0;
      while((recCount++ < limit) && rs.next()) {
        Client client = new Client();
        populate(client, rs);
        list.add(client);
      }
      close(rs);
      close(pstmt);
    } catch (SQLException e) {
      close(rs);
      close(pstmt);
      rollback(conn);
      e.printStackTrace();
    } finally {
    	close(conn);
    }
    DAOCacheManager.putCache(list, objKey, 1);
    return list;
  }

}

⌨️ 快捷键说明

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