画面
AA101Main Main
package eo.sim.tool.view;
import eo.sim.tool.service.EmpRgstService;
public class AA101Main {
public static void main(String[] args) {
try {
EmpRgstService empRgstService = new EmpRgstService();
String loginUser = empRgstService.getLoginUser();
AA102MenuFrame aA102MenuFrame = new AA102MenuFrame();
aA102MenuFrame.setLoginUser(loginUser);
aA102MenuFrame.init(aA102MenuFrame);
} catch (Exception e) {
e.printStackTrace();
}
}
}
AA102MenuFrame
package eo.sim.tool.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import eo.sim.tool.action.View03BtnBulkRgstAction21;
import eo.sim.tool.action.View03BtnBulkRgstAction22;
import eo.sim.tool.action.View03BtnBulkRgstAction3;
import eo.sim.tool.action.View04BtnSeniEmpRgstAction;
/**
*
*
*/
public class AA102MenuFrame extends JFrame {
private JButton button1 = null;
private JButton button2_1 = null;
private JButton button2_2 = null;
private JButton button3_1 = null;
private JButton button3_2 = null;
private String loginUser = "";
public String getLoginUser() {
return loginUser;
}
public void setLoginUser(String loginUser) {
this.loginUser = loginUser;
}
public void init(AA102MenuFrame view04) {
// 閉じるボタンをクリックされた場合の動作を設定
view04.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
view04.setTitle("メインメニュー:" + this.loginUser);
// フレームの X座標、Y座標、幅、高さを設定
view04.setBounds(100, 200, 463, 450);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
view04.setVisible(true);
}
/**
* コンストラクタ
*/
public AA102MenuFrame() {
// ベースとなるパネルをLayoutManagerを無効にして作成
JPanel panelBase = new JPanel();
panelBase.setLayout(null);
// 検索パネル
JPanel panel1 = new JPanel();
panel1.setLayout(null);
// サイズを設定
panel1.setPreferredSize(new Dimension(100, 14));
// 枠を設定
// panel1.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
panel1.setBounds(5, 5, 440, 200);
// ボタンを作成
button1 = new JButton("従業員登録へ");
// 位置を設定
button1.setBounds(10, 10, 170, 30);
// ボタンを作成
button2_1 = new JButton("従業員一括登録1");
// 位置を設定
button2_1.setBounds(10, 50, 170, 30);
// ボタンを作成
button2_2 = new JButton("従業員一括登録2");
// 位置を設定
button2_2.setBounds(200, 50, 170, 30);
// ボタンを作成
button3_1 = new JButton("大量登録:バッチモード");
// 位置を設定
button3_1.setBounds(10, 90, 170, 30);
// ボタンを作成
button3_2 = new JButton("大量登録:通常モード");
// 位置を設定
button3_2.setBounds(200, 90, 170, 30);
// パネルに配置
panel1.add(button1);
panel1.add(button2_1);
panel1.add(button2_2);
panel1.add(button3_1);
panel1.add(button3_2);
// サブパネルを追加
panelBase.add(panel1);
// ベースパネルを追加
getContentPane().add(panelBase, BorderLayout.CENTER);
// アクションリスナー追加
// 処理モードラジオボタン
// 編集ボタン
View04BtnSeniEmpRgstAction action1 = new View04BtnSeniEmpRgstAction(this);
button1.addActionListener(action1);
View03BtnBulkRgstAction21 action2_1 = new View03BtnBulkRgstAction21(this);
button2_1.addActionListener(action2_1);
View03BtnBulkRgstAction22 action2_2 = new View03BtnBulkRgstAction22(this);
button2_2.addActionListener(action2_2);
View03BtnBulkRgstAction3 action3_1 = new View03BtnBulkRgstAction3(this, true);
button3_1.addActionListener(action3_1);
View03BtnBulkRgstAction3 action3_2 = new View03BtnBulkRgstAction3(this, false);
button3_2.addActionListener(action3_2);
}
}
AA103EmpFrame
package eo.sim.tool.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
import eo.sim.tool.action.View03BtnBackAction;
import eo.sim.tool.action.View03BtnEditAction;
import eo.sim.tool.action.View03BtnRgstAction;
import eo.sim.tool.action.View03BtnSearchAction;
import eo.sim.tool.action.View03RdoEditModeAction;
import eo.sim.tool.dto.Dept;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.util.CodeName;
public class AA103EmpFrame extends JFrame {
/** パネル上 */
ButtonGroup bgroup = new ButtonGroup();
JRadioButton radio1 = null;
JRadioButton radio2 = null;
// 従業員番号(検索用)
JTextField text_12 = null;
// 従業員番号
JTextField text_21 = null;
// 従業員名
JTextField text_22 = null;
// 職種
JTextField text_23 = null;
// 部署
JComboBox<CodeName> comboBox_24 = null;
JButton button2 = null;
JButton button3 = null;
JButton button4 = null;
public ButtonGroup getBgroup() {
return bgroup;
}
public void setBgroup(ButtonGroup bgroup) {
this.bgroup = bgroup;
}
public JRadioButton getRadio1() {
return radio1;
}
public void setRadio1(JRadioButton radio1) {
this.radio1 = radio1;
}
public JRadioButton getRadio2() {
return radio2;
}
public void setRadio2(JRadioButton radio2) {
this.radio2 = radio2;
}
public JTextField getText_12() {
return text_12;
}
public void setText_12(JTextField text_12) {
this.text_12 = text_12;
}
public JTextField getText_21() {
return text_21;
}
public void setText_21(JTextField text_21) {
this.text_21 = text_21;
}
public JTextField getText_22() {
return text_22;
}
public void setText_22(JTextField text_22) {
this.text_22 = text_22;
}
public JTextField getText_23() {
return text_23;
}
public void setText_23(JTextField text_23) {
this.text_23 = text_23;
}
public JComboBox<CodeName> getComboBox_24() {
return comboBox_24;
}
public void setComboBox_24(JComboBox<CodeName> comboBox4) {
this.comboBox_24 = comboBox4;
}
// ボタンを作成
JButton button1 = null;
public JButton getButton1() {
return button1;
}
public void setButton1(JButton button1) {
this.button1 = button1;
}
public JButton getButton2() {
return button2;
}
public void setButton2(JButton button2) {
this.button2 = button2;
}
public JButton getButton3() {
return button3;
}
public void setButton3(JButton button3) {
this.button3 = button3;
}
/**
* 開始メソッド
*
* @param args パラメータ
*/
// public static void main(String[] args){
// View03 view = new View03();
//
// init(view);
// }
public void init(AA103EmpFrame view) {
// 閉じるボタンをクリックされた場合の動作を設定
view.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
view.setTitle("従業員登録");
// フレームの X座標、Y座標、幅、高さを設定
view.setBounds(100, 200, 463, 450);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
view.setVisible(true);
}
public void setDefault(AA103EmpFrame view) {
// 従業員番号
text_21.setText("");;
// 従業員名
text_22.setText("");
// 職種
text_23.setText("");
// 部署
comboBox_24.setSelectedIndex(0);
}
/**
* コンストラクタ
*/
public AA103EmpFrame() {
// ベースとなるパネルをLayoutManagerを無効にして作成
JPanel panelBase = new JPanel();
panelBase.setLayout(null);
// 検索パネル
JPanel panel1 = new JPanel();
panel1.setLayout(null);
// サイズを設定
panel1.setPreferredSize(new Dimension(100, 14));
// 枠を設定
panel1.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
panel1.setBounds(5, 5, 440, 100);
// 色を設定
// panel1.setBackground(Color.LIGHT_GRAY);
// データパネル
JPanel panel2 = new JPanel();
panel2.setLayout(null);
// サイズを設定
panel2.setPreferredSize(new Dimension(100, 14));
// 枠を設定
panel2.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
panel2.setBounds(5, 105, 440, 300);
// 色を設定
// panel2.setBackground(Color.LIGHT_GRAY);
/** パネル上 */
radio1 = new JRadioButton("登録");
// 位置を設定
radio1.setBounds(10, 10, 80, 30);
radio2 = new JRadioButton("変更");
// 位置を設定
radio2.setBounds(100, 10, 80, 30);
bgroup.add(radio1);
bgroup.add(radio2); // パネルに配置
// 初期選択
radio2.setSelected(true);
// 従業員番号
JLabel label11 = new JLabel("従業員番号");
// 位置を設定
label11.setBounds(10, 50, 80, 30);
// テキストを作成
// 従業員番号
text_12 = new JTextField("10001");
// サイズを設定
text_12.setPreferredSize(new Dimension(100, 14));
// 枠を設定
text_12.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
text_12.setBounds(100, 50, 80, 30);
// ボタンを作成
button1 = new JButton("検索");
// 位置を設定
button1.setBounds(200, 50, 80, 30);
panel1.add(radio1);
panel1.add(radio2);
panel1.add(label11);
panel1.add(text_12);
panel1.add(button1);
/** パネル下 */
// ラベルを作成
// 従業員番号
JLabel label1 = new JLabel("従業員番号");
// 位置を設定
label1.setBounds(10, 10, 80, 30);
// 従業員名
JLabel label2 = new JLabel("従業員名");
// 位置を設定
label2.setBounds(10, 50, 80, 30);
// 職種
JLabel label3 = new JLabel("職種");
// 位置を設定
label3.setBounds(10, 90, 80, 30);
// 部署
JLabel label4 = new JLabel("部署");
// 位置を設定
label4.setBounds(10, 130, 80, 30);
// テキストを作成
// 従業員番号
text_21 = new JTextField("");
// サイズを設定
text_21.setPreferredSize(new Dimension(100, 14));
// 枠を設定
text_21.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
text_21.setBounds(100, 10, 80, 30);
text_21.setEnabled(false);
text_21.setEditable(false);
// 従業員名
text_22 = new JTextField("");
// サイズを設定
text_22.setPreferredSize(new Dimension(100, 14));
// 枠を設定
text_22.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
text_22.setBounds(100, 50, 80, 30);
// 従業員名
text_23 = new JTextField("");
// サイズを設定
text_23.setPreferredSize(new Dimension(100, 14));
// 枠を設定
text_23.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
text_23.setBounds(100, 90, 80, 30);
// 部署リストを取得
EmpRgstService empRgstService = new EmpRgstService();
try {
empRgstService.init();
} catch (Exception e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
// 部署
comboBox_24 = new JComboBox<CodeName>();
// コンボボックスモデル
// DefaultComboBoxModel<String> cboMode4 = new DefaultComboBoxModel<String>();
// for (Dept dept : empRgstService.getDeptList()){
// cboMode4.addElement(dept.getDeptno() + ":" + dept.getDname());
// }
// サイズを設定
comboBox_24.setPreferredSize(new Dimension(100, 14));
// 枠を設定
comboBox_24.setBorder(new BevelBorder(BevelBorder.LOWERED));
// 位置を設定
comboBox_24.setBounds(100, 130, 160, 30);
// comboBox_24.setModel(cboMode4);
for (Dept dept : empRgstService.getDeptList()){
CodeName codeName = new CodeName(Integer.valueOf(dept.getDeptno()).toString() ,dept.getDname());
comboBox_24.addItem(codeName);
}
// ボタンを作成
button2 = new JButton("登録");
// 位置を設定
button2.setBounds(200, 170, 80, 30);
button2.setEnabled(false);
// ボタンを作成
button3 = new JButton("更新");
// 位置を設定
button3.setBounds(290, 170, 80, 30);
button3.setEnabled(false);
// ボタンを作成
button4 = new JButton("戻る");
// 位置を設定
button4.setBounds(10, 170, 80, 30);
// パネルに配置
panel2.add(label1);
panel2.add(label2);
panel2.add(label3);
panel2.add(label4);
panel2.add(text_21);
panel2.add(text_22);
panel2.add(text_23);
panel2.add(comboBox_24);
panel2.add(button2);
panel2.add(button3);
panel2.add(button4);
// サブパネルを追加
panelBase.add(panel1);
panelBase.add(panel2);
// ベースパネルを追加
getContentPane().add(panelBase, BorderLayout.CENTER);
// アクションリスナー追加
// 処理モードラジオボタン
View03RdoEditModeAction action1 = new View03RdoEditModeAction(this);
radio1.addItemListener(action1);
View03RdoEditModeAction action2 = new View03RdoEditModeAction(this);
radio2.addItemListener(action2);
// 検索ボタン
View03BtnSearchAction action3 = new View03BtnSearchAction(this);
button1.addActionListener(action3);
// 登録ボタン
View03BtnRgstAction action4 = new View03BtnRgstAction(this);
button2.addActionListener(action4);
// 編集ボタン
View03BtnEditAction action5 = new View03BtnEditAction(this);
button3.addActionListener(action5);
// 戻るボタン
View03BtnBackAction action6 = new View03BtnBackAction(this);
button4.addActionListener(action6);
}
}
CodeName コンボボックス用
package eo.sim.tool.util;
public class CodeName {
private String code;
private String name;
public CodeName(String code ,String name) {
this.code = code;
this.name = name;
}
public int getSelectIndex(){
return 0;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return code + ":" + name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((code == null) ? 0 : code.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
CodeName other = (CodeName) obj;
if (code == null) {
if (other.code != null) {
return false;
}
} else if (!code.equals(other.code)) {
return false;
}
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
return true;
}
}
EmpRgstService サービス
package eo.sim.tool.service;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
import eo.sim.tool.dao.CommonDao;
import eo.sim.tool.dao.DeptDao;
import eo.sim.tool.dao.EmpDao;
import eo.sim.tool.dto.Dept;
import eo.sim.tool.dto.Emp;
/**
* @author kosuk
*
*/
public class EmpRgstService {
// 従業員番号
private String empno = null;
// 従業員名
private String empname = null;
// 職種
private String job = null;
// 部署番号
private String deptno = null;
// 部署名
private String dname = null;
// 上司
private String manager;
// 給料
private float salary;
// 手数料
private float commission;
public String getManager() {
return manager;
}
public void setManager(String manager) {
this.manager = manager;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
public float getCommission() {
return commission;
}
public void setCommission(float commission) {
this.commission = commission;
}
// 部署リスト
List<Dept> deptList = null;
public String getEmpno() {
return empno;
}
public void setEmpno(String empno) {
this.empno = empno;
}
public String getEmpname() {
return empname;
}
public void setEmpname(String empName) {
this.empname = empName;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public List<Dept> getDeptList() {
return deptList;
}
public void setDeptList(List<Dept> deptList) {
this.deptList = deptList;
}
/**
*
* 初期表示
*
*/
public void init() throws Exception {
DeptDao deptService = new DeptDao();
deptList = deptService.getAllDept();
}
/**
*
* ログインユーザーを取得する
*
*/
public String getLoginUser() throws Exception {
// 従業員を取得
CommonDao commonDao = new CommonDao();
return commonDao.getLoginUser();
}
/**
*
* 従業員情報を検索する
*
*/
public int getEmpInfo(String empno) throws Exception {
// 従業員を取得
EmpDao empDao = new EmpDao();
Emp emp = empDao.getEmp(empno);
if (emp == null) {
return 0;
}
empname = emp.getEname();
job = emp.getJob();
deptno = Integer.valueOf(emp.getDeptno()).toString();
// 部署を取得
DeptDao deptDao = new DeptDao();
Dept dept = deptDao.getDept(deptno);
if (dept != null) {
dname = dept.getDname();
}
return 1;
}
/**
*
* 従業員情報を登録する
*
*/
public void insertEmpInfo() throws Exception {
// 従業員を生成
EmpDao empDao = new EmpDao();
Emp emp = new Emp();
// 更新情報を設定
emp.setEmpno(Integer.valueOf(empno).intValue());
emp.setEname(this.empname);
emp.setJob(this.job);
emp.setManager(Integer.valueOf(this.manager).intValue());
java.util.Date now1 = new java.util.Date();
java.sql.Date now2 = new java.sql.Date(now1.getTime());
emp.setHiredate(now2);
emp.setSalary(this.salary);
emp.setCommission(this.commission);
emp.setDeptno(Integer.valueOf(this.deptno).intValue());
// 従業員を更新
empDao.insert(emp);
}
/**
*
* 従業員情報を登録する
*
*/
public void insertEmpInfo(SqlMapClient sqlMap) throws Exception {
// 従業員を生成
EmpDao empDao = new EmpDao();
Emp emp = new Emp();
// 更新情報を設定
emp.setEmpno(Integer.valueOf(empno).intValue());
emp.setEname(this.empname);
emp.setJob(this.job);
emp.setManager(Integer.valueOf(this.manager).intValue());
java.util.Date now1 = new java.util.Date();
java.sql.Date now2 = new java.sql.Date(now1.getTime());
emp.setHiredate(now2);
emp.setSalary(this.salary);
emp.setCommission(this.commission);
emp.setDeptno(Integer.valueOf(this.deptno).intValue());
// 従業員を更新
empDao.insert(sqlMap, emp);
}
/**
*
* 従業員情報を変更する
*
*/
public void updateEmpInfo() throws Exception {
// 従業員を取得
EmpDao empDao = new EmpDao();
Emp empUpdate = empDao.getEmp(empno);
// 更新情報を設定
empUpdate.setEname(empname);
empUpdate.setJob(job);
empUpdate.setDeptno(Integer.valueOf(deptno).intValue());
// 従業員を更新
empDao.update(empUpdate);
}
}
Emp DTO
package eo.sim.tool.dto;
import java.sql.Date;
public class Emp {
private int empno;
private String ename;
private String job;
private int manager;
private Date hiredate;
private float salary;
private float commission;
private int deptno;
public float getCommission() {
return commission;
}
public void setCommission(float commission) {
this.commission = commission;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getManager() {
return manager;
}
public void setManager(int manager) {
this.manager = manager;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
@Override
public String toString() {
return "[empno=" + empno
+ ", ename=" + ename
+ ", job=" + job
+ ", manager=" + manager
+ ", hiredate=" + hiredate
+ ", salary=" + salary
+ ", commistion=" + commission
+ ", depno=" + deptno
+ "]"; //Commons-LangのToStringBuilderを使うと楽
}
}
SqlMap-Emp.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<!-- SQLでマッピングする記述方法。COALESCEはDBMSの関数 -->
<select id="getEmpByEmpno" resultClass="eo.sim.tool.dto.Emp">
SELECT
EMPNO,
ENAME,
JOB,
MGR as manager,
HIREDATE,
SAL as salary,
COALESCE(COMM, 0.0) as commission,
DEPTNO
FROM EMP
WHERE EMPNO = #value#
</select>
<select id="allEmp1" resultClass="eo.sim.tool.dto.Emp">
SELECT
EMPNO,
ENAME,
JOB,
MGR as manager,
HIREDATE,
SAL as salary,
COALESCE(COMM, 0.0) as commission,
DEPTNO
FROM EMP
</select>
<select id="allEmpAsXml" resultClass="xml" xmlResultName="DEPTNO">
SELECT
EMPNO,
ENAME,
JOB,
MGR as manager,
HIREDATE,
SAL as salary,
COALESCE(COMM, 0.0) as commission,
DEPTNO
FROM EMP
</select>
<!-- resultMapを記述してIBATISの機能でマッピングする方法
DBに依存しない記述 -->
<resultMap id="rm1" class="eo.sim.tool.dto.Emp">
<result column="EMPNO" property="empno"/>
<result column="ENAME" property="ename"/>
<result column="JOB" property="job"/>
<result column="MGR" property="manager"/>
<result column="HIREDATE" property="hiredate"/>
<result column="SAL" property="salary"/>
<result column="COMM" property="commission" nullValue="0.0"/> <!-- NULLの時の指定 -->
<result column="DEPTNO" property="deptno"/>
</resultMap>
<select id="allEmp2" resultMap="rm1">
SELECT * FROM EMP
</select>
<!-- 動的SQLの例
条件指定されときのみWHERE句が付加される -->
<select id="searchEmp" parameterClass="eo.sim.tool.dto.SearchEmpParam" resultMap="rm1">
SELECT * FROM EMP
<dynamic prepend="WHERE">
<isNotNull prepend="AND" property="ename">
ENAME like #ename# <!-- ename条件がnullでないとき -->
</isNotNull>
<isNotEqual compareValue="0" prepend="AND" property="deptno">
DEPTNO = #deptno# <!-- deptno条件が0でないとき -->
</isNotEqual>
</dynamic>
</select>
<!-- 動的SQLの例
INで指定する値が可変 -->
<select id="searchEmpIn" parameterClass="eo.sim.tool.dto.SearchEmpParam" resultMap="rm1">
SELECT * FROM EMP
<iterate property="empnoList" prepend="WHERE EMPNO IN" open="(" close=")" conjunction="," >
#empnoList[]#
</iterate>
</select>
<!-- 動的SQLの例
文字列でSQL文そのものを指定 -->
<select id="searchEmpOrder" resultMap="rm1">
SELECT * FROM EMP
ORDER BY $value$
</select>
<!-- 行の追加 -->
<insert id="insertEmp" parameterClass="eo.sim.tool.dto.Emp">
INSERT INTO EMP(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES(#empno#, #ename#, #job#, #manager#, #hiredate#, #salary#, #commission#, #deptno#)
</insert>
<!-- 行の更新 -->
<update id="updateEmp" parameterClass="eo.sim.tool.dto.Emp">
UPDATE EMP SET EMPNO = #empno#, ENAME = #ename#, JOB = #job#, MGR = #manager#, HIREDATE = #hiredate#, SAL = #salary#, COMM = #commission#, DEPTNO = #deptno#
WHERE EMPNO = #empno#
</update>
</sqlMap>
MyAppSqlConfig
package eo.sim.tool.dao;
import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
/**
* SqlMapClientを返すためのクラス
*/
public class MyAppSqlConfig {
private static SqlMapClient sqlMap;
static {
try {
String resource = "SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlMapClient getSqlMapInstance(){
//Singletoneとして利用
return sqlMap;
}
}
EmpDao
package eo.sim.tool.dao;
import java.util.Map;
import com.ibatis.sqlmap.client.SqlMapClient;
import eo.sim.tool.dto.Emp;
public class EmpDao {
/**
*
* 従業員を検索検索
*
*/
public Emp getEmp(String empno) throws Exception {
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
/*
* DeptNoを指定して1件のDeptを取得
*/
int intEmpno = (Integer.valueOf(empno)).intValue();
Emp emp = (Emp)sqlMap.queryForObject("getEmpByEmpno",intEmpno);
return emp;
}
/**
*
* 従業員を登録する
*
*/
public void insert(Emp emp) throws Exception {
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
// INSERT文の実行
// 引数として作成済みのdeptを渡す
sqlMap.insert("insertEmp", emp);
}
/**
*
* 従業員を登録する
*
*/
public void insert(SqlMapClient sqlMap, Emp emp) throws Exception {
// INSERT文の実行
// 引数として作成済みのdeptを渡す
sqlMap.insert("insertEmp", emp);
}
/**
*
* 従業員を変更する
*
*/
public void update(Emp emp) throws Exception {
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
// UPDATE文の実行
// 引数として作成済みのdeptを渡す
sqlMap.update("updateEmp", emp);
}
@SuppressWarnings("unchecked")
public String getEmpName(String empno) throws Exception {
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
int intEmpno = (Integer.valueOf(empno)).intValue();
// dtoに格納
Emp emp = (Emp)sqlMap.queryForObject("getEmpByEmpno",intEmpno);
// MAP<"列",<"列", "データ">>に格納
System.out.println("getEmpByEmpno");
Map<String, Object> map1 = sqlMap.queryForMap("getEmpByEmpno",intEmpno, "deptno");
Map<String, Object> map2 = sqlMap.queryForMap("getEmpByEmpno",intEmpno, "empno");
Map<String, Object> map4 = sqlMap.queryForMap("getEmpByEmpno",intEmpno, "empno","ename");
// MAP<"列",<"列", "データ">>に格納
Map<String, Object> map3 = sqlMap.queryForMap("allEmp1",intEmpno, "empno");
Map<String, Object> map5 = sqlMap.queryForMap("allEmp1",intEmpno, "empno","ename");
System.out.println(map1.toString());
System.out.println(map2.toString());
System.out.println(map4.toString());
System.out.println("");
System.out.println("allEmp1");
System.out.println(map3.toString());
System.out.println(map5.toString());
return emp.getEname();
}
public String getJob(String empno) throws Exception {
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
/*
* DeptNoを指定して1件のDeptを取得
*/
int intEmpno = (Integer.valueOf(empno)).intValue();
Emp emp = (Emp)sqlMap.queryForObject("getEmpByEmpno",intEmpno);
return emp.getJob();
}
}
アクション
View03BtnBackAction
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import eo.sim.tool.view.AA103EmpFrame;
import eo.sim.tool.view.AA102MenuFrame;
public class View03BtnBackAction implements ActionListener {
private AA103EmpFrame view03;
public View03BtnBackAction(AA103EmpFrame view) {
this.view03 = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
AA102MenuFrame frame = new AA102MenuFrame();
frame.init(frame);
// 遷移元を破棄
this.view03.dispose();
}
}
View03BtnBulkRgstAction21
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import com.ibatis.sqlmap.client.SqlMapClient;
import eo.sim.tool.dao.MyAppSqlConfig;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.view.AA102MenuFrame;
public class View03BtnBulkRgstAction21 implements ActionListener {
private AA102MenuFrame view;
public View03BtnBulkRgstAction21(AA102MenuFrame view) {
this.view = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
int option = JOptionPane.showConfirmDialog(view, "一括登録してもよろしいですか。", "確認", JOptionPane.YES_NO_OPTION , JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.NO_OPTION){
return;
}
// SqlMapClientを取得
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
try {
// トランザクション開始
sqlMap.startTransaction();
// 一括バッチ処理開始
sqlMap.startBatch();
// 従業員を取得
EmpRgstService empRgstService = new EmpRgstService();
// 更新情報の設定
empRgstService.setEmpno("10002");
empRgstService.setEmpname("一括登録テスト");
empRgstService.setJob("仕事1");
empRgstService.setDeptno("10");
// デフォルト値で設定
empRgstService.setManager("7902");
empRgstService.setSalary(1230);
empRgstService.setCommission(12.2F);
// 従業員情報を登録する
empRgstService.insertEmpInfo(sqlMap);
empRgstService.setEmpno("10003");
empRgstService.setJob("仕事2");
empRgstService.insertEmpInfo(sqlMap);
// 一括バッチ処理実行
sqlMap.executeBatch();
// コミット
sqlMap.commitTransaction();
JOptionPane.showConfirmDialog(view, "一括登録が完了しました", "情報", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
JOptionPane.showConfirmDialog(view, e1.getMessage(), "エラー", JOptionPane.DEFAULT_OPTION , JOptionPane.ERROR_MESSAGE);
} finally {
try {
// トランザクション終了
sqlMap.endTransaction();
} catch (SQLException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
}
}
View03BtnBulkRgstAction22
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import com.ibatis.sqlmap.client.SqlMapClient;
import eo.sim.tool.dao.MyAppSqlConfig;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.view.AA102MenuFrame;
public class View03BtnBulkRgstAction22 implements ActionListener {
private AA102MenuFrame view;
public View03BtnBulkRgstAction22(AA102MenuFrame view) {
this.view = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
int option = JOptionPane.showConfirmDialog(view, "一括登録してもよろしいですか。", "確認", JOptionPane.YES_NO_OPTION , JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.NO_OPTION){
return;
}
// SqlMapClientを取得
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
try {
// トランザクション開始
sqlMap.startTransaction();
// 一括バッチ処理開始
// sqlMap.startBatch();
// 従業員を取得
EmpRgstService empRgstService = new EmpRgstService();
// 更新情報の設定
empRgstService.setEmpno("10002");
empRgstService.setEmpname("一括登録テスト");
empRgstService.setJob("仕事1");
empRgstService.setDeptno("10");
// デフォルト値で設定
empRgstService.setManager("7902");
empRgstService.setSalary(1230);
empRgstService.setCommission(12.2F);
// 従業員情報を登録する
empRgstService.insertEmpInfo();
empRgstService.setEmpno("10003");
empRgstService.setJob("仕事2");
empRgstService.insertEmpInfo();
// 一括バッチ処理実行
// sqlMap.executeBatch();
// コミット
sqlMap.commitTransaction();
JOptionPane.showConfirmDialog(view, "一括登録が完了しました", "情報", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
JOptionPane.showConfirmDialog(view, e1.getMessage(), "エラー", JOptionPane.DEFAULT_OPTION , JOptionPane.ERROR_MESSAGE);
} finally {
try {
// トランザクション終了
sqlMap.endTransaction();
} catch (SQLException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
}
}
View03BtnBulkRgstAction3
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.springframework.util.StopWatch;
import com.ibatis.sqlmap.client.SqlMapClient;
import eo.sim.tool.dao.MyAppSqlConfig;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.view.AA102MenuFrame;
public class View03BtnBulkRgstAction3 implements ActionListener {
private AA102MenuFrame view;
private boolean batchMode;
public boolean isBatchMode() {
return batchMode;
}
public void setBatchMode(boolean batchMode) {
this.batchMode = batchMode;
}
public View03BtnBulkRgstAction3(AA102MenuFrame view) {
this.view = view;
}
public View03BtnBulkRgstAction3(AA102MenuFrame view,boolean batchMode) {
this.view = view;
this.batchMode = batchMode;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
int option = JOptionPane.showConfirmDialog(view, "バッチ登録してもよろしいですか。", "確認", JOptionPane.YES_NO_OPTION , JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.NO_OPTION){
return;
}
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
try {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
// トランザクション開始
sqlMap.startTransaction();
// 一括バッチ処理開始
if (this.isBatchMode()) {
sqlMap.startBatch();
}
for (int i=25001;i<30001;i++) {
// 従業員を取得
EmpRgstService empRgstService = new EmpRgstService();
// 更新情報の設定
empRgstService.setEmpno(String.valueOf(i).toString());
empRgstService.setEmpname("一括登録テスト");
empRgstService.setJob("仕事1");
empRgstService.setDeptno("10");
// デフォルト値で設定
empRgstService.setManager("7902");
empRgstService.setSalary(1230);
empRgstService.setCommission(12.2F);
// 従業員情報を登録する
empRgstService.insertEmpInfo(sqlMap);
}
if (this.isBatchMode()) {
// 一括バッチ処理実行
sqlMap.executeBatch();
}
// コミット
sqlMap.commitTransaction();
stopWatch.stop();
System.out.printf("バッチモード:["+ this.isBatchMode() +"]insert:%s\n\n", stopWatch);
JOptionPane.showConfirmDialog(view, "バッチ登録が完了しました", "情報", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
JOptionPane.showConfirmDialog(view, e1.getMessage(), "エラー", JOptionPane.DEFAULT_OPTION , JOptionPane.ERROR_MESSAGE);
} finally {
try {
// トランザクション終了
sqlMap.endTransaction();
} catch (SQLException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
}
}
View03BtnEditAction
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.util.CodeName;
import eo.sim.tool.view.AA103EmpFrame;
public class View03BtnEditAction implements ActionListener {
private AA103EmpFrame view;
public View03BtnEditAction(AA103EmpFrame view) {
this.view = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
int option = JOptionPane.showConfirmDialog(view, "更新してもよろしいですか。", "確認", JOptionPane.YES_NO_OPTION , JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.NO_OPTION){
return;
}
try {
// 従業員を取得
EmpRgstService empRgstService = new EmpRgstService();
// 更新情報の設定
empRgstService.setEmpno(view.getText_21().getText());
empRgstService.setEmpname(view.getText_22().getText());
empRgstService.setJob(view.getText_23().getText());
// String[] deptArray = view.getComboBox_24().getSelectedItem().toString().split(":");
// empRgstService.setDeptno(deptArray[0]);
CodeName codeName = (CodeName)view.getComboBox_24().getSelectedItem();
empRgstService.setDeptno(codeName.getCode());
// 従業員情報を変更する
empRgstService.updateEmpInfo();
JOptionPane.showConfirmDialog(view, "更新が完了しました", "情報", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
}
View03BtnRgstAction
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.util.CodeName;
import eo.sim.tool.view.AA103EmpFrame;
public class View03BtnRgstAction implements ActionListener {
private AA103EmpFrame view;
public View03BtnRgstAction(AA103EmpFrame view) {
this.view = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
int option = JOptionPane.showConfirmDialog(view, "登録してもよろしいですか。", "確認", JOptionPane.YES_NO_OPTION , JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.NO_OPTION){
return;
}
try {
// 従業員を取得
EmpRgstService empRgstService = new EmpRgstService();
// 更新情報の設定
empRgstService.setEmpno(view.getText_21().getText());
empRgstService.setEmpname(view.getText_22().getText());
empRgstService.setJob(view.getText_23().getText());
// String[] deptArray = view.getComboBox_24().getSelectedItem().toString().split(":");
// empRgstService.setDeptno(deptArray[0]);
CodeName codeName = (CodeName)view.getComboBox_24().getSelectedItem();
empRgstService.setDeptno(codeName.getCode());
// デフォルト値で設定
empRgstService.setManager("7902");
empRgstService.setSalary(1230);
empRgstService.setCommission(12.2F);
// 従業員情報を登録する
empRgstService.insertEmpInfo();
JOptionPane.showConfirmDialog(view, "登録が完了しました", "情報", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
}
View03BtnSearchAction
package eo.sim.tool.action;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import eo.sim.tool.service.EmpRgstService;
import eo.sim.tool.util.CodeName;
import eo.sim.tool.view.AA103EmpFrame;
public class View03BtnSearchAction implements ActionListener {
private AA103EmpFrame view;
public View03BtnSearchAction(AA103EmpFrame view) {
this.view = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
try {
// 従業員番号(検索用)
JTextField text_12 = view.getText_12();
if ("".equals(text_12.getText())){
JOptionPane.showConfirmDialog(view, "従業員番号が入力されていません。", "エラー", JOptionPane.DEFAULT_OPTION , JOptionPane.ERROR_MESSAGE);
text_12.setBackground(Color.CYAN);
return;
}
// 従業員を取得
EmpRgstService empRgstService = new EmpRgstService();
int count = empRgstService.getEmpInfo(text_12.getText());
if (count == 0) {
JOptionPane.showConfirmDialog(view, "対象データがありません。", "エラー", JOptionPane.DEFAULT_OPTION , JOptionPane.ERROR_MESSAGE);
return;
}
// 画面へ設定
view.getText_21().setText(text_12.getText());
view.getText_22().setText(empRgstService.getEmpname());
view.getText_23().setText(empRgstService.getJob());
CodeName codename = new CodeName(Integer.valueOf(empRgstService.getDeptno()).toString() ,empRgstService.getDname());
view.getComboBox_24().setSelectedItem(codename);
view.getButton3().setEnabled(true);
// text_12.setBackground(Color.WHITE);
} catch (Exception e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
}
View03RdoEditModeAction
package eo.sim.tool.action;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import eo.sim.tool.view.AA103EmpFrame;
public class View03RdoEditModeAction implements ItemListener {
private AA103EmpFrame view;
public View03RdoEditModeAction(AA103EmpFrame view) {
this.view = view;
}
@Override
public void itemStateChanged(ItemEvent e) {
// ラジオボタン変更時に2回呼び出される
// 呼び出し1回目はラジオボタンが未選択状態になったタイミング(2つとも未選択状態)
// 呼び出し2回目はラジオボタンが選択状態になったタイミング(どちらかが選択状態)
// よって下記の選択状態を判定する必要がある
if (view.getRadio1().isSelected()) {
view.getText_12().setEnabled(false);
view.getText_12().setEditable(false);
view.getText_12().setText("");
view.getText_21().setEnabled(true);
view.getText_21().setEditable(true);
view.getButton1().setEnabled(false);
view.getButton2().setEnabled(true);
view.getButton3().setEnabled(false);
}
if (view.getRadio2().isSelected()) {
view.getText_12().setEnabled(true);
view.getText_12().setEditable(true);
view.getText_21().setEnabled(false);
view.getText_21().setEditable(false);
view.getButton1().setEnabled(true);
view.getButton2().setEnabled(false);
view.getButton3().setEnabled(false);
}
view.setDefault(view);
}
}
View04BtnSeniEmpRgstAction
package eo.sim.tool.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import eo.sim.tool.view.AA103EmpFrame;
import eo.sim.tool.view.AA102MenuFrame;
public class View04BtnSeniEmpRgstAction implements ActionListener {
private AA102MenuFrame view04;
public View04BtnSeniEmpRgstAction(AA102MenuFrame view) {
this.view04 = view;
}
// イベントハンドラ (イベント発生時に自動的に呼び出される)
public void actionPerformed(ActionEvent e) {
AA103EmpFrame view03 = new AA103EmpFrame();
view03.init(view03);
view04.dispose();
}
}