DAOの処理についての質問です。
「CreateUserServlet2.java」において、38行目から「CreateUserDAO」を呼び出して処理を行いたいのですが、カッコ内の変数が解決できないとのことです。
この二つのプログラムに関して、どのような変更を加えれば、前者のサーブレットから、後者を呼び出すことができるのでしょうか。
ご教授いただけると幸いです。
よろしくお願いいたします。
CreateUserServlet2.java package la.Servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import la.bean.CreateUserBean; import la.dao.CreateUserDAO; import la.dao.ShowIdDAO; //275ページ OrderServlet参照 @WebServlet("/CreateUserServlet2") public class CreateUserServlet2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //beanの呼び出し CreateUserBean cubean=new CreateUserBean(); //sessionスコープにBeanのデータを格納 HttpSession session = request.getSession(); cubean = (CreateUserBean)session.getAttribute("profile"); try { //CreateUserDAOの呼び出し CreateUserDAO dao = new CreateUserDAO(); dao.CreateUser(userName,userPost,userAddress,userTel,userEmail,userPassword,userBirthday,joinDate); System.out.print("完了"); ShowIdDAO daoId = new ShowIdDAO(); request.setAttribute("yourId",daoId); gotoPage(request, response, "/createUserSuccess.jsp"); }catch(Exception e){ e.printStackTrace(); request.setAttribute("message", "内部エラーが発生しました"); gotoPage(request,response,"error.jsp"); } } private void gotoPage(HttpServletRequest request, HttpServletResponse response, String page) throws ServletException, IOException{ RequestDispatcher rd= request.getRequestDispatcher(page); rd.forward(request, response); } }
CreateUserDAO.java package la.dao; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; public class CreateUserDAO { private Connection con; public CreateUserDAO()throws DAOException{ getConnection(); System.out.println("データベースに接続しました"); } public void CreateUser(String userName,String userPost,String userAddress,String userTel,String userEmail, String userPassword, Date userBirthday,Date joinDate) throws DAOException{ if(con==null) getConnection(); PreparedStatement st=null; try{ String sql="INSERT INTO userinfo(" + "user_name,user_post,user_address,user_tel,user_email,user_password,user_birthday,join_date) " + "VALUES(?,?,?,?,?,?,?,CURRENT_DATE)"; st = con.prepareStatement(sql); st.setString(1,userName); st.setString(2,userPost); st.setString(3,userAddress); st.setString(4,userTel); st.setString(5,userEmail); st.setString(6,userPassword); st.setDate(7,userBirthday); st.executeUpdate(); st.close(); return; }catch(Exception e) { e.printStackTrace(); throw new DAOException("レコードの操作に失敗しました。"); }finally { try { if(st!=null) st.close(); }catch(Exception e) { throw new DAOException("リソースの開放に失敗しました"); } } } private void getConnection() throws DAOException{ try { // JDBCドライバの登録 Class.forName("org.postgresql.Driver"); // URL,ユーザ名,パスワード設定 String url = "jdbc:postgresql:webbook"; String user = "postgres"; String password = "himitu"; // データベース接続 con = DriverManager.getConnection(url, user, password); }catch(Exception e) { e.printStackTrace(); throw new DAOException("接続に失敗しました。"); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/27 05:14