現在JAVA研修の集大成としてアプリ制作をしています。私は常備薬管理アプリというデータベースに薬名・効果効能・個数を登録し日付と番号をつけて表示、追加、検索、削除、編集の昨日を付ける設定でとりくんでいます。表示・追加・検索については無事出来ましたが、削除と編集が出来ていません。削除と編集は登録時に割り振られたUNIQUEの一意シーケンス番号を使って一覧表示画面から一行ごとに行いたいのですが行き詰っています。未完成のソースコードを載せますので間違いや不足等あれば教えてください。
MedicineForm
package form;
import java.util.List;
import org.apache.struts.action.ActionForm;
public class MedicineForm extends ActionForm{
private String no;
private String date;
private String name;
private String topic;
private String count;
private List<Rec> data;
public String getNo() { return no; } public void setNo(String no) { this.no = no; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTopic() { return topic; } public void setTopic(String topic) { this.topic = topic; } public String getCount() { return count; } public void setCount(String count) { this.count = count; } public List<Rec> getData() { return data; } public void setData(List<Rec> data) { this.data = data; }
}
MediDelAction(WHERE no = の後で詰まっています)
package action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class MediDelAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String sql = "DELETE FROM medicine WHERE no = "; String url = "jdbc:oracle:thin:@localhost:1521:XE"; try (Connection con = DriverManager.getConnection(url, "SYSTEM", "abc"); Statement stmt = con.createStatement()){ stmt.executeUpdate(sql); } catch (SQLException e) { System.err.println(e); } return (mapping.findForward("delete")); }
}
Delete.jsp(この画面で「はい」ボタンをクリック後削除したいです)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<html:html lang="ja">
</body> </html:html></html:form>
EditAction(WHERE no = の後で詰まっています)
package action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import form.MedicineForm;
import form.Rec;
public class EditAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
MedicineForm mf = (MedicineForm) form; long date = System.currentTimeMillis(); String name = mf.getName(); String topic = mf.getTopic(); String count = mf.getCount(); List<Rec> data = new ArrayList<Rec>(); String url = "jdbc:oracle:thin:@localhost:1521:XE"; try (Connection con = DriverManager.getConnection(url, "System", "abc"); Statement stmt = con.createStatement()){ String sql = "UPDATE medicine SET day =" + date + ", name = '" + name + "',topic ='" + topic + "',count ='" + count + "' WHERE no = "; stmt.executeUpdate(sql); ResultSet rs = stmt.executeQuery("SELECT * FROM medicine"); while (rs.next()){ Date d = new Date(rs.getLong("day")); data.add(new Rec(String.format("%tF %<tR",d), rs.getString("no"),rs.getString("name"),rs.getString("topic"), rs.getString("count"))); } } catch (SQLException e){ System.err.println(e); } mf.setData(data); return(mapping.findForward("edit")); }
}
一覧表示画面(List.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<html:html lang="ja">
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。