初めまして。
現在JSPの学習をしているものです。
Statement sttSql = db.createStatement();
ResultSet rs = db.getResultSet("select * from DEPT");
ResultSet rs =sttSql.executeQuery(select * from DEPT);
などを駆使することを通して、下記のコードの情報を「MyDBAccess」のインスタンスを生成することを通して取得し、データベースにアクセスし、JSP(「私のコード」に記述があります)にて表示することを試みています。
Java
1package atmarkit; 2 3import java.sql.*; 4 5public class MyDBAccess { 6 7 private String driver; 8 private String url; 9 private String user; 10 private String password; 11 private Connection connection; 12 private Statement statement; 13 private ResultSet resultset; 14 15 /** 16 * コンストラクタ 17 * @param driver ドライバー 18 * @param url URL 19 * @param user ユーザー名 20 * @param password パスワード 21 */ 22 public MyDBAccess(String driver, String url, String user, String password) { 23 this.driver = driver; 24 this.url = url; 25 this.user = user; 26 this.password = password; 27 } 28 29 /** 30 * 引数なしのコンストラクタ 31 * 既定値を使用する 32 */ 33 public MyDBAccess() { 34 driver = "com.mysql.jdbc.Driver"; 35 url = "jdbc:mysql://localhost:3306/××××;//意図的に伏せています 36 user = "root"; 37 password = "××××";//意図的に伏せています 38 } 39 40 /** 41 * データベースへの接続を行う 42 */ 43 public synchronized void open() throws Exception { 44 Class.forName(driver); 45 connection = DriverManager.getConnection(url, user, password); 46 statement = connection.createStatement(); 47 } 48 49 /** 50 * SQL 文を実行した結果の ResultSet を返す 51 * @param sql SQL 文 52 */ 53 public ResultSet getResultSet(String sql) throws Exception { 54 if ( statement.execute(sql) ) { 55 return statement.getResultSet(); 56 } 57 return null; 58 } 59 60 /** 61 * SQL 文の実行 62 * @param sql SQL 文 63 */ 64 public void execute(String sql) throws Exception { 65 statement.execute(sql); 66 } 67 68 /** 69 * データベースへのコネクションのクローズ 70 */ 71 public synchronized void close() throws Exception { 72 if ( resultset != null ) resultset.close(); 73 if ( statement != null ) statement.close(); 74 if ( connection != null ) connection.close(); 75 } 76}
しかし、試行錯誤しているのですがうまくいきません。
知恵を貸していただけると嬉しいです。どうぞよろしくお願いいたします。
#私のコード
Java
1<%@ page import="java.sql.*, atmarkit.MyDBAccess" 2 contentType="text/html; charset=UTF-8" %> 3 4 5<% request.setCharacterEncoding("UTF-8"); 6 7 //DB接続オブジェクト 8 Connection db = null; 9 //命令を管理するオブジェクト? 10 Statement sttSql = null; 11 //結果セットオブジェクト 12 ResultSet rs = null; 13 14%> 15 16 17<html> 18<head> 19<title>登録/更新/削除</title> 20</head> 21<body> 22<h1 style="background:#cccccc">新規登録/更新/削除</h1> 23<form method="POST" action="updel.jsp"> 24<input type="submit" name="cndbtn" value="新規" /> 25<input type="submit" name="cndbtn" value="更新・削除" /> 26<input type="reset" value="取消" /> 27<hr> 28<table border="0"> 29<tr style="background:#00ccff"> 30<th>No.</th><th>削除</th><th>名前</th><th>場所</th> 31</tr> 32 33<% 34 int cnt=1; 35 36//MyDBAccess のインスタンスを生成する 37MyDBAccess db = new MyDBAccess(); 38 39//データベースへのアクセス 40db.open(); 41 42Statement sttSql = db.createStatement(); 43 44ResultSet rs = db.getResultSet("select * from DEPT"); 45 46ResultSet rs =sttSql.executeQuery(select * from DEPT); 47 48while(rs.next()){ 49%> 50<tr style="background:#ffffcc"> 51<td> 52<%=rs.getString("DEPTNO") %> 53<input type="hidden" name="id<%=cnt %>" value="<%=rs.getString("DEPTNO")%>" 54/> 55 56</td> 57<td><input type="checkbox" name="del<%=cnt %>" value="true" /></td> 58<td nowrap> 59<input type="text" name="nam<%=cnt %>" size="30" 60value="<%=rs.getString("DNAME")%>" 61/> 62</td><td> 63<input type="text" name="loc<%=cnt %>" size="30" 64value="<%=rs.getString("LOC")%>" 65/> 66</td> 67</tr> 68 69<% 70 cnt++; 71 } 72 rs.close(); 73 sttSql.close(); 74 db.close(); 75 %> 76 77 </table> 78 <input type="hidden" name="cnt" value="<%=cnt %>" /> 79 </form> 80 </body> 81</html>
もし何か、気になる箇所などございましたらご教授いただけたら幸いです。
どうぞよろしくお願いいたします。
あなたの回答
tips
プレビュー