6 従業員IDによる検索

この項では、従業員IDを使用して検索する手順を説明します。

6.1 Employee Java Bean

クラス名:

/main/java/com/oracle/jdbc/samples/entity/Employee.java

このマニュアルで作成したEmployee.javaを使用します。

6.2 Java Beanで、従業員IDによる検索に必要なメソッドを作成

クラス名:

src/main/java/com/oracle/jdbc/samples/bean/JdbcBean.java

getEmployee(int empID)メソッドを使用して、IDを基準に従業員レコードを取得します。

/**
* Get List of employee based on empId. This will always return one row
* but returning a List to make signatures consistent.
* @param empId
* @return
* /
public List<Employee>getEmployee(int empId);

6.3 従業員IDによる検索のためのgetEmployee()メソッドの実装

クラス名:

src/main/java/com/oracle/jdbc/samples/bean/JdbcBean.java

最初の手順で作成したgetConnection()を使用して、同じデータベースに接続します。

従業員IDに基づいて従業員を取得するメソッドgetEmployee()を作成します。

SELECT Employee_Id, First_Name, Last_Name, Email, Phone_Number, Job_Id, Salary FROM EMPLOYEES WHERE
Employee_Id = ?

サンプル・コードを次に示します。

public List<Employee>getEmployee(int empId) {
List<Employee>returnValue = new ArrayList<>();
try (Connection connection = getConnection()){
try (PreparedStatement preparedStatement = connection.prepareStatement(
“SELECT Employee_Id, First_Name, Last_Name, Email, Phone_Number, Job_Id, Salary FROM EMPLOYEES WHERE Employee_Id = ?”)){
preparedStatement.setInt(1,empId);
try (ResultSet resultSet = preparedStatement.executeQuery()){
if(resultSet.next()){
returnValue.add(newEmployee(resultSet));
}
}
}
} catch (SQLException ex){
logger.log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
return returnValue;
}

6.4 従業員IDによる検索のための新規HTMLの作成

クラス名:

src/main/webapp/listById.html

このHTMLは、従業員IDを取得するためのテキスト・ボックスを表示します。次に、従業員IDに基づいて検索するリクエストを生成して発行します。

次にサンプル・コードを示します。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"> 
<title>List Employee by Id</title> 
<link rel="stylesheet" type="text/css" href="css/app.css" > 
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</head>
<body>
<div><label>Employee Id: </label> 
 <input id="empId" type="textfield"
onkeypress="return waitForEnter(event)"\></div>
<br/>
<br/>
<div id="id-emp"></div>
<script>
function waitForEnter(e) { 
if (e.keyCode == 13) {  
var tb = document.getElementById("empId");   
fetchElementById(tb.value) 
return false;
}
}
function fetchElementById(empId) {  
var xmlhttp = new XMLHttpRequest();
var url = "WebController?id=" +empId;
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
processResponse(xmlhttp.responseText);

}
}
xmlhttp.open("GET", url, true); 
xmlhttp.send();
}
function processResponse(response) {  var arr = JSON.parse(response);  var out = "";  if (arr == null) {    out = '<div class="alert alert-warning"><strong>Alert!</strong>'
+' No records found for the given id</div>'  }  
else {  
var i;    out = "<table>";
keys = Object.keys(arr);
out += "<tr><th>Trash</th><th>Edit</th>"
for(i = 0; i < keys.length; ++i) {
out += "<th>"+keys[i]+"</th>"
}
out += "</tr>"
out += '<tr><td><a href="javascript:confirmDelete()">'
+'<span  class="glyphicon glyphicon-trash"></span>'
+'</a></td>'
+'<td><a href="javascript:allowEditSalary()">'
+'<span class="glyphicon glyphicon-edit"></span>'
+'</a></td>'
for(i = 0; i < keys.length; ++i) {
out += "<td id='" +keys[i]+"'>"+arr[keys[i]]+"</td>"
}
out += "</tr>"
}
document.getElementById("id-emp").innerHTML = out;
}
</script>
</body>
</html>