●実現したいこと
・DAOを利用して実行イメージの表示をさせたいです。
・山田花子さんの部署を営業部から総務部に変更させ、1件更新と表示させたいです。
・30~39歳の従業員のリストを表示させたいです。
●実行結果-------------------------------------
特定の従業員の部署を変更する。
0件更新されました。
特定の年齢層の従業員リスト。
30~39歳までの従業員:[]
↑エラー表示は出ないのですが、更新されないのと、30~39歳の従業員の名前が表示されないです。
また、実行結果の山田花子さんの部署が変えることができないです。
●試してみたこと
・PrepareStatementをStatementに変えて試してみましたが上手くいきませんでした。
●ソースコード
テーブル名:employee
クラス名:ConnectionManager
クラス名:EmployeeDAO
クラス名:BusinessLogic
package DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManager {
private final String URL = "jdbc:oracle:@デバイス名:1521/sampledb";
private final String User = "ユーザ名";
private final String PASSWORD = "パスワード";
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(URL,User,PASSWORD));
}
}
//メソッド--------------------------------------------------------------------------------
package DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PrepareStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class EmployeeDAO {
public int updateSectionByCode(String name1) throws SQLException{
int count = 0;
try
(Connection con = ConnectionManager.getConnection()){
PrepareStatement pstmt = con.prepareStatement("Update
employee set section = '総務部' where name = '山田花子'");
count = pstmt.executeUpdate();
}
}
return count;
}
public List<String> selectNameByAge(int age1,int age2)throws SQLException{
try
(Connection con = ConnectionManager.getConnection()){
PrepareStatement pstmt = con.prepareStatement("select name from
m_employee where age >= 30 and age <= 39");
ResultSet res = pstmt.executeQuery();
while(res.next()) {
nameList.add(res.getString("name"));
}
}
return nameList;
}
//メインクラス--------------------------------------------------------------------
package DAO;
import java.util.List;
public class BusinessLogic {
public static void main (String[] args){
String name1 = "山田花子";
try {
System.out.println("特定の従業員の部署を変更する。");
int count = dao.updateSectionByCode(name1);
System.out.println(count + "件更新されました。");
System.out.println("");
System.out.println("特定の年齢層の従業員リスト。");
System.out.print("30~39歳までの従業員:");
int age1 = 30
int age2 = 39;
List<String> nameList = dao.selectNameByAge(age1,age2);
System.out.print(nameList + " ");
}catch(Exception e){
System.out.println("異常事態発生");
e.printStackTrace();
}
}
}
長文で申し訳ございません。
よろしくお願いいたします。