5 Servlet Java 5.1 JDBC JDBC Java DataBase Connectivity Java API JDBC Java Oracle, PostgreSQL, MySQL Java JDBC Servlet OpenOffice.org ver. 2.0 HSQLDB HSQLDB 100% Java HSQLDB SQL 5.2 JDBC Java 1. JDBC 2. 3. SQL 4. SQL 5. DBSelect.java DBSelect.java customer "SELECT * FROM customer" SQL HTML java.sql.* import JDBC - 5 p.1
DBSelect.java import java.io.*; import java.sql.*; import javax.servlet.http.*; public class DBSelect extends HttpServlet { @Override public void doget(httpservletrequest request, HttpServletResponse response) throws IOException { Connection conn = null; response.setcontenttype("text/html; charset=windows-31j"); PrintWriter out = response.getwriter(); out.println("<html><head></head><body>"); out.println("<table border= true >"); out.println("<tr><th>id</th><th>first</th><th>last</th>" +"<th>street</th><th>city</th></tr>"); Class.forName("org.hsqldb.jdbcDriver"); // JDBC String url = "jdbc:hsqldb:hsql://localhost"; // HSQLDB URL String user = "sa", password=""; // HSQLDB conn = DriverManager.getConnection(url, user, password); // Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery("select * FROM customer"); // SQL while (rs.next()) { out.print("<tr>"); out.print("<td>"+rs.getstring("id")+"</td>"); out.print("<td>"+rs.getstring("firstname") + "</td>"); out.print("<td>"+rs.getstring("lastname") + "</td>"); out.print("<td>"+rs.getstring("street") + "</td>"); out.print("<td>"+rs.getstring("city") + "</td>"); out.print("</tr>"); catch (ClassNotFoundException e) { out.println(" "); catch (SQLException e) { out.println(" "); finally { if (conn!= null) { conn.close(); /* */ catch (SQLException e) { out.println("</table>"); out.println("</body></html>"); out.close(); - 5 p.2
5.2.1 JDBC JDBC JDBC Class.forName HSQLDB "org.hsqldb.jdbcdriver" 1 Class.forName("org.hsqldb.jdbcDriver"); JDBC class ClassNotFoundException ClassNotFoundException catch 5.2.2 DriverManager.getConnection 1 URL JDBC Servlet HSQLDB URL "jdbc:hsqldb:hsql://localhost" 2 3 HSQLDB "sa" "" java.sql.connection Connection : JDBC URL 5.2.3 SQL SQL java.sql.statement Statement Connection createstatement Statement executequery SQL SELECT SQL Java Java executequery java.sql.resultset SQLException catch 1 JDBC - 5 p.3
ResultSet ResultSet next next next false ResultSet getstring String HSQLDB customer id, firstname, lastname, street, city 5 ResultSet getstring getint getter getter ( ) ( ) java.sql.resultset ((J2SEAPI)/java/sql/ResultSet.html) 5.2.1 java.sql.preparedstatement 5.2.4 DBSelect.java try finally conn.close() 5.3 customer DBUpdate.html <html><head></head> <body> <form action= servlet/dbupdate method= POST > <br> <table border> <tr><th> </th> <th> </th></tr> <tr><td>id</td> <td><input type= text size= 5 name= id ></td></tr> <tr><td>street</td><td><input type= text size= 32 name= street ></td></tr> <tr><td>city</td> <td><input type= text size= 32 name= city ></td></tr> </table> <input type= submit value= > </form> </body> </html> executequery executeupdate SQL UPDATE INSERT DELETE executeupdate - 5 p.4
DBUpdate.java import java.io.*; import java.sql.*; import javax.servlet.http.*; public class DBUpdate extends HttpServlet { @Override public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException { Connection conn = null; response.setcontenttype("text/html; charset=windows-31j"); PrintWriter out = response.getwriter(); out.println("<html><head></head><body>"); String id = request.getparameter("id"); String street = request.getparameter("street"); String city = request.getparameter("city"); String user = "sa", password=""; Class.forName("org.hsqldb.jdbcDriver"); String url = "jdbc:hsqldb:hsql://localhost"; conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createstatement(); stmt.executeupdate("update customer SET street = "+street +", city = "+city+" WHERE id = "+id); out.println(" <br>"); out.println("id="+id+", street= "+street+", city= "+city+" "); catch (ClassNotFoundException e) { out.println(" "); catch (SQLException e) { out.println(" "); finally { if (conn!= null) { conn.close(); catch (SQLException e) { out.println("</body></html>"); out.close(); - 5 p.5
executeupdate SQL ( DBUpdate.java ) DBSelect.java ( ) 5.3.1 X price 15 10% HSQLDB product price product X 5.3.2 HSQLDB customer HTML : JDBC, Class.forName, DriverManager.getConnection, Connection, createstatement, Statement, executequery, executeupdate, ResultSet, next, getstring, - 5 p.6