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>