1 / 14

숭실대학교 최종명 it.ssu.ac.kr/jsp/

웹 개발자를 위한 서블릿 /JSP 제 8 장. 숭실대학교 최종명 http://it.ssu.ac.kr/jsp/. MySQL 사용법. MySQL Win32 버전 Shareware http://www.tryc.on.ca/mysql/Win32/ MySQL 실행 시작 <MySQL>binmysqld-shareware --standalone 중지 <MySQL>binmysqladmin -u root shutdown 기본적인 사용법 http://it.ssu.ac.kr/jsp/ => 튜토리얼.

perry
Download Presentation

숭실대학교 최종명 it.ssu.ac.kr/jsp/

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 웹 개발자를 위한 서블릿/JSP 제 8장 숭실대학교 최종명 http://it.ssu.ac.kr/jsp/

  2. MySQL 사용법 • MySQL Win32 버전 • Shareware • http://www.tryc.on.ca/mysql/Win32/ • MySQL 실행 • 시작 • <MySQL>\bin\mysqld-shareware --standalone • 중지 • <MySQL>\bin\mysqladmin -u root shutdown • 기본적인 사용법 • http://it.ssu.ac.kr/jsp/ => 튜토리얼

  3. JDBC 프로그래밍 준비 • JDBC 프로그래밍 준비 • DBMS에 데이터베이스와 테이블 생성 • JDBC 드라이버 설치 • 드라이버 다운로드 & 압축 풀기 • MySQL : mm 드라이버 • org 디렉토리를 <jakarta-tomcat>\webapps \ROOT\WEB-INF\classes 디렉토리에 복사 • MS-SQL : JTurbo/Sprinta 드라이버 • com 디렉토리를 <jakarta-tomcat>\webapps \ROOT\WEB-INF\classes 디렉토리에 복사 • 참고 : 각 디렉토리를 <jdk>/classes 에 복사

  4. JDBC 프로그래밍 절차 • 드라이버를 로드한다. • JDBC 드라이버에 따라 다르다. 예: ODBC 브리지를 로드하는 경우 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 예: MS-SQL: JTurbo 드라이버를 로드하는 경우 Class.forName("com.ashna.jturbo.driver.Driver"); 예: MS-SQL: JTurbo 드라이버를 로드하는 경우 Class.forName("com.inet.tds.TdsDriver"); 예: MySQL: MM 드라이버를 로드하는 경우 Class.forName("org.gjt.mm.mysql.Driver").newInstance();

  5. JDBC 프로그래밍 절차(계속) • 컨넥션을 생성한다. • JDBC 드라이버에 따라 다르다. 예: ODBC를 사용하는 경우 String url = "jdbc:odbc:Fred"; Connection con = DriverManager.getConnection(url, "Fer", "J8"); 예: JTurbo 드라이버를 사용하는 경우 String url = "jdbc:JTurbo://localhost:1433/testdb"; Connection con = java.sql.DriverManager.getConnection(url, "sa", ""); 예: Sprinta 드라이버를 사용하는 경우 String url = "jdbc:inetdae7:localhost:1433?database=gbook&charset= KSC5601"; Connection con = DriverManager.getConnection(url, “sa”, “”); 예: MM 드라이버를 사용하는 경우 String url = "jdbc:mysql://localhost/gbook"; Connection con = DriverManager.getConnection(url, “user”, “passwd”);

  6. JDBC 프로그래밍 절차(계속) • Statement를 생성한다. • SQL을 전송한다. Statement stmt = con.createStatement(); 예: SELECT를 제외한 모든 SQL 문장 int count = stmt.executeUpdate("INSERT INTO COFFEES " + "VALUES ('Colombian', 101, 7.99, 0, 0)"); 예: SELECT 문장 ResultSet rs = stmt.executeQuery( "SELECT COF_NAME, PRICE FROM COFFEES");

  7. JDBC 프로그래밍 절차(계속) • SELECT 문의 결과를 추출한다. • 작업을 종료한다. while (rs.next()) { String s = rs.getString(1); float n = rs.getFloat(2); System.out.println(s + " " + n); } rs.close(); stmt.close(); con.close();

  8. JDBC 프로그래밍 예 • 예제: GWriter.java 2 import java.sql.*; …… 14 Class.forName("com.ashna.jturbo.driver.Driver"); 15 } catch (Exception e) { 16 if(debug) 17 e.printStackTrace(); …… 35 contents = contents.replace('\'', '\b'); …… 37 String url = "jdbc:JTurbo://localhost:1433/gbook"; ……

  9. JDBC 프로그래밍 예 • 예제: GWriter.java(계속) 42 Connection con = DriverManager.getConnection(url, user, passwd); 43 Statement st = con.createStatement(); 44 String sql = "insert into book values('"+name+"','"+email+"','"+ 45 home+"','"+contents+"')"; 46 if(debug) 47 out.println(sql); 48 49 st.executeUpdate(sql);

  10. JDBC 프로그래밍 예 • 예제: GReader.java 15 Class.forName("com.ashna.jturbo.driver.Driver"); 16 } catch (Exception e) { 17 if(debug) 18 e.printStackTrace(); …… 31 String url = "jdbc:JTurbo://localhost:1433/gbook"; 32 String user = "sa"; 33 String passwd = ""; 34 35 try { 36 Connection con = DriverManager.getConnection(url, user, passwd); 37 Statement st = con.createStatement();

  11. JDBC 프로그래밍 예 • GReader.java(계속) 38 st.setFetchSize(max); 39 st.setMaxRows(max); 40 String sql = null; 41 if(start != null) 42 sql = "select * from book where num < " + start + 43 " order by num desc " ; 44 else 45 sql = "select * from book order by num desc "; …… 55 ResultSet rs = st.executeQuery(sql); 56 out.println("<table width=100%>");

  12. JDBC 프로그래밍 예 • GReader.java(계속) 57 int last = -1; 58 while(rs.next()) { 59 last = rs.getInt(1); 60 String name = rs.getString(2); 61 String email = rs.getString(3); 62 String home = rs.getString(4); 63 String contents = rs.getString(5); 64 contents = contents.replace('\b', '\''); …… 99 out.println("<a href=/servlet/GReader?start=" 100 +last+">다음 페이지>>");

  13. JDBC 프로그래밍 • Connection Pool 사용 • 데이터베이스 컨넥션은 많은 로드가 걸리는 작업 • 컨넥션을 새로 만들지 않고, 만들어진 것을 Pool에 저장해서 재사용 • ConnectionPool.java • 컨넥션을 재 사용하기 위한 클래스

  14. JDBC 프로그래밍 예 • 예제: GReaderTwo.java 9 private ConnectionPool pool; …… 15 try { 16 pool = new ConnectionPool("jdbc:JTurbo://localhost:1433/gbook", 17 "sa", "", "com.ashna.jturbo.driver.Driver", 2, 2); …… 37 con = pool.getConnection(); 38 Statement st = con.createStatement(); …… 110 if(con != null) 111 pool.returnConnection(con);

More Related