본문 바로가기
Computer Science & Engineering/JAVA

2008/01/27 My-Sql을 이용해서 JDBC

by 니나노 Mr.꾸 2008. 1. 22.
반응형

MySql 서버 설정 방법

invalid-file

Java에서 my_sql을 연동하기 위한 드라이버

invalid-file

MySql 서버 설정 방법


1. C:\mysql\bin\winmysqladmin 을 실행시켜 사용자 를 설정한다.
2. winmysqladmin를 실행시켜 my.ini Setup으로 가서 내용을 확인한다.
    (포트와 사용자 정보)

MySql 명령어
mysql> 에서 실행

  • show databases;
    • 전체 database에 있는 database들을 보여준다
  • user database_name;
    • 해당 database를 사용한다는 명령어
  • create table table_name(type, .. type);
    • table을 table_name으로 생성
    • type 부분은 variable_name variable_type을 넣는다
    • variable_type : int, char(length)
  • desc table_name;
    • table의 구조를 본다
  • insert into table_name values(value,value,value);
    • value에는 int값은 그냥 넣고 문자열은 ' ' 를 붙여서 넣는다
  • select column_name from table_name where 조건;
    • column_name - table 생성시 설정한 variable type
      • 모든 column을 보려면 *
    • from - table이름
    • where - 조건

Java에서 연동하기

  1. 제공하는 JDBC 드라이버 파일(.jar)을 jdk가 설치되어 있는 곳에서 jre\lib\ext으로 옮겨준다
    1. 예) C:\Program Files\Java\jdk1.5.0_14\jre\lib\ext
  2. import java.sql.*;
  3. Connection 객체를 선언

     DB 연결

  1. Class.forName("com.mysql.jdbc.Driver");
    1. JDBC 드라이버를 로드한다.
    2. com.mysql.jdbc.Driver 경로는 mySql에서 제공하는 드라이버 jar파일에 Driver.class 파일의 경로에 해당한다.
    3. 이 경로는 버전이 바뀔때나 DB가 바뀌면서 바뀔수도 있다.
    4. 사족 - Class.forName => forName은 static 함수
  2. conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/malldb", "root", "");
    1. connection 객체에 DB를 연결
    2. getConnection의 parameter
      1. jdbc - jdbc를 사용한다는 의미
      2. mysql - mysql을 사용한다는 의미
      3. localhost = 127.0.0.1
      4. 3306 - 포트 번호
        1. mysql - default 3306
        2. oracle - default 1521
      5. malldb - Database 이름
      6. "root" - database 사용자 이름
      7. " " - 사용자의 password, 여기에서는 password가 없다.
      8. ** 만약 모든 parameter가 맞다고 하면 password를 ""로 보내본다. 처음 로드 되면서 password가 기본으로 들어간 경우에는 password를 ""로 하면 연결 성공한다. **


     DB에 Query 보내기

  1. Statement 변수 선언
    1. 예> Statement stmt = null;
  2. Statement 변수에 Connection 객체의 createStatement()의 method를 이용해서 Statement 객체를 할당한다.
    1. 예) stmt = conn.createStatement();
    2. connection 객체는 interface이어서 new 로 생성할 수 없고 new 대신 사용할수 있는 함수가 createStatement() 이다.
    3. Statement도 interface이다
  3. Query 문의 결과를 받기 위해 ResultSet의 변수를 선언
  4. ResultSet 변수에 Statement 객체의 executeQuery() method를 이용해 결과를 받는다
    1. 예) ResultSet rs = stmt.executeQuery("query_statement");
    2. stmt.executeQuery("query_statement") 는 query문을 실행시키는 것
    3. executeQuery()는 return 값이 있는 select 문에 쓴다
    4. executeUpdate()는 return 값이 없는 insert, delete, update 문에 쓴다
  5. ResultSet의 next() method를 이용해서 하나의 tuple(row)를 본다.
    1. 예) 하나의 tuple을 본 다음 next()를 하면 다음 tuple로 간다.
  6. ResultSet의 getString(param), getInt(param)을 이용하여 tuple의 값을 볼 수있다
    1. param은 tuple의 몇번째 column인지 정해주는 것이다.
      1. 주의 할 것은 column의 index는 0이 아닌 1부터 시작한다는 것이다param
    2. column의 index외에 column의 이름을 정해주는 것도 가능하다
      1. 예) table 생성시 첫번째 column의 이름을 name이라고 지정했으면 getString("name") 이런 식으로 값을 얻어올 수 있다.
    3. 보통 get+얻으려는 type+(index) 라고 생각하면 된다.

ResultSetMetaData

  1. resultset의 MetaData로 information about the types and properties of the columns in a ResultSet object 를 얻을 수 있다.
  2. 예를 들면 Column의 이름 머 요론거다



 

* 사족 - Mild Error - syntax error 같이 개발자가 컴파일로 쉽게 찾을 수 있는것
            Error - runtime error 같이 컴파일 타임에 error check가 되지 않지만 runtime에 error가 검출 되는 것

728x90

'Computer Science & Engineering > JAVA' 카테고리의 다른 글

2Day_homwork - pcs  (0) 2008.01.21
자바 클래스  (0) 2008.01.18
1Day Homework 구구단  (1) 2008.01.18
JavaDoc 사용  (0) 2008.01.17
Java 제어문  (0) 2008.01.17

댓글