0
0
テーマ、知りたいこと
jspとsqlの連携について
背景、状況
初めて質問させていただきます。
現在自分はjspの勉強をしており、mysqlと連携させるやり方を調べています。
といっても連携させるソースはわかっているのですが、参考書やwebで調べていると何種類かあることがわかりました。
自分が今わかっているのは2パターンです。
(例は前ページのフォームから送信された情報をINSERT文でデータベースに追加する場合)
jsp
1<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*" %> 2<% 3request.setCharacterEncoding("UTF-8"); 4String sql = "INSERT INTO sample(name,address) VALUES (?,?)"; 5String url = "jdbc:mysql://localhost/test"; 6String user = "hoge"; 7String pass = "hoge"; 8 9try( 10 Connection conn = DriverManager.getConnection(url,user,pass); 11 PreparedStatement ps = conn.prepareStatement(sql); 12 ) { 13 ps.setString(1,request.getParameter("name")); 14 ps.setString(2,request.getParameter("address")); 15 ps.executeUpdate(); 16}catch(Exception e) { 17 18} 19 20response.sendRedirect("index.jsp"); 21%>
jsp
1<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*,javax.sql.*,javax.naming.*" %> 2<% 3request.setCharacterEncoding("UTF-8"); 4String sql = "INSERT INTO sample(name,address) VALUES(?,?) "; 5Context context = new InitialContext(); 6DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/test"); 7 8try( 9 Connection db = ds.getConnection(); 10 PreparedStatement ps = db.prepareStatement(sql); 11 ) { 12 ps.setString(1,request.getParameter("name")); 13 ps.setString(2,request.getParameter("address")); 14 ps.executeUpdate(); 15}catch(Exception e) { 16 17} 18response.sendRedirect("index.jsp"); 19%>
上記2パターンでデータベースに反映できており、自分が分かった違いとして後者基準だと
・アプリケーションのルートディレクトリにcontext.xmlを設定して配置しなければエラー。
・ユーザーやパスワード情報もcontext.xmlに書いてあるため、ソースに書かなくてよい。
などがありました。
上記で述べたこと以外で内部的な違いがあれば、教えていただければと思います。
また、実際にsqlを連携するにあたって本番環境ではどちらがよいのかもよければ教えてください。
回答4件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。