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

📄 advertisejobbean.java

📁 21天学学会J2EE的源码1 是一本非常不错的书
💻 JAVA
字号:
package agency;

import java.rmi.*;
import java.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
import javax.sql.*;

public class AdvertiseJobBean implements SessionBean {
    private DataSource dataSource;
    private String ref;
    private String customer;
    private String description;
    private String location;
    private Collection skills;

    public void updateDetails(String description, String location, String[] skills) {
        if (skills == null) {
            skills = new String[0];
        }
        Connection con = null;
        PreparedStatement stmt = null;
        try {
            con = dataSource.getConnection();
            stmt = con.prepareStatement("UPDATE JOB SET description = ?, location = ? WHERE ref = ? AND customer = ?");
            stmt.setString(1, description);
            stmt.setString(2, location);
            stmt.setString(3, ref);
            stmt.setString(4, customer);
            stmt.executeUpdate();
            stmt = con.prepareStatement("DELETE FROM JobSkill WHERE job = ? AND customer = ?");
            stmt.setString(1, ref);
            stmt.setString(2, customer);
            stmt.executeUpdate();
            stmt = con.prepareStatement("INSERT INTO JobSkill (job, customer, skill) VALUES (?, ?, ?)");
            for (int i = 0; i < skills.length; i++) {
                stmt.setString(1, ref);
                stmt.setString(2, customer);
                stmt.setString(3, skills[i]);
                stmt.executeUpdate();
            }
            this.description = description;
            this.location = location;
            this.skills.clear();
            for (int i = 0; i < skills.length; i++)
                this.skills.add(skills[i]);
        }
        catch (SQLException e) {
            error("Error updating job " + ref + " for " + customer, e);
        }
        finally {
            closeConnection(con, stmt, null);
        }
    }

    public String getRef() {
        return ref;
    }

    public String getCustomer() {
        return customer;
    }

    public String getDescription() {
        return description;
    }

    public String getLocation() {
        return location;
    }

    public String[] getSkills() {
        return ((String[]) skills.toArray(new String[skills.size()]));
    }

    private void error(String msg, Exception ex) {
        String s = "JobManagerBean: " + msg + "\n" + ex;
        System.out.println(s);
        throw new EJBException(s, ex);
    }

    private void closeConnection(Connection con, PreparedStatement stmt, ResultSet rslt) {
        if (rslt != null) {
            try {
                rslt.close();
            }
            catch (SQLException e) { }
        }
        if (stmt != null) {
            try {
                stmt.close();
            }
            catch (SQLException e) { }
        }
        if (con != null) {
            try {
                con.close();
            }
            catch (SQLException e) { }
        }
    }

    // EJB methods start here
    public void ejbCreate(String ref, String customer) throws CreateException {
        this.ref = ref;
        this.customer = customer;
        Connection con = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            con = dataSource.getConnection();
            stmt = con.prepareStatement("SELECT description,location FROM Job WHERE ref = ? AND customer = ?");
            stmt.setString(1, ref);
            stmt.setString(2, customer);
            rs = stmt.executeQuery();
            if (rs.next()) {
                description = rs.getString(1);
                location = rs.getString(2);
                skills = new TreeSet();
            }
            else
                throw new CreateException("Failed to find database job record for " + ref + ":" + customer);
            stmt = con.prepareStatement("SELECT skill FROM JobSkill WHERE job = ? AND customer = ?");
            stmt.setString(1, ref);
            stmt.setString(2, customer);
            rs = stmt.executeQuery();
            while (rs.next()) {
                skills.add(rs.getString(1));
            }
        }
        catch (SQLException e) {
            error("Error creating job " + ref + ":" + customer, e);
        }
        finally {
            closeConnection(con, stmt, rs);
        }
    }

    public void ejbActivate() {
    }

    public void ejbPassivate() {
    }

    public void ejbRemove() {
    }

    private SessionContext ctx;

    public void setSessionContext(SessionContext ctx) {
        this.ctx = ctx;
        try {
            InitialContext ic = new InitialContext();
            dataSource = (DataSource)ic.lookup("java:comp/env/jdbc/Agency");
        }
        catch (NamingException ex) {
            error("Error connecting to java:comp/env/jdbc/Agency:", ex);
        }
    }
}

⌨️ 快捷键说明

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