[자바기초] mySQL 기본문법적용 및 한글인코딩(Driver load, Connection, Statement)

자바<->MySQL 사이에 한글을 입력할때 깨짐현상을 방지하기 위한 인코딩이 필요할때가 있다.

인코딩 메소드를 통해 ISO-8859-1 방식으로 지정하여 한글깨짐을 방지해야 한다.

ChangeEncoding

package com.ljh;
import java.io.UnsupportedEncodingException;

public class ChangeEncoding {
  // java => mySQL
public static String toLatin(String str){
       try{
            byte[] b=str.getBytes();
            return new String(b, "ISO-8859-1");   
       }catch(UnsupportedEncodingException uee){
            System.out.println("Encoding ERR : " +uee.getMessage());
            return null;
       }
  }

// mySQL => Java 
public static String toUnicode(String str){

       try{
            byte[] b=str.getBytes("ISO-8859-1");
            return new String(b);   
       }catch(UnsupportedEncodingException uee){
        System.out.println("Encoding ERR : " +uee.getMessage());
            return null;
      }
  }
}


MainClass

package com.ljh;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MainClass {

 public static void main(String[] args) {

  //로드해줄 드라이버, URL주소, 커넥션, 스테이트먼트, 리절트셋 ㅎㅎ 
  String driver = "com.mysql.jdbc.Driver";
  String url = "jdbc:mysql://localhost:3306/java";
  
  Connection con = null;
  PreparedStatement pstm = null;
  String sql = null;
  ResultSet rs = null;
  String question = null, a1 = null, a2 = null, a3 = null, a4 = null;
  int no=0;
  
  try{
   Class.forName(driver);
   con = DriverManager.getConnection(url, "root", "1234");
   sql = "SELECT * FROM javaquiz";
   pstm = con.prepareStatement(sql);
   
   rs = pstm.executeQuery();
      
   while(rs.next()){
    no = rs.getInt("no");
    question = rs.getString("question");
    a1 = rs.getString("a1");
    a2 = rs.getString("a2");
    a3 = rs.getString("a3");
    a4 = rs.getString("a4");
    System.out.println(no + ". " + ChangeEncoding.toUnicode(question) + " \n1) " + ChangeEncoding.toUnicode(a1) 
    + " \n2) " + ChangeEncoding.toUnicode(a2) + " \n3) " + ChangeEncoding.toUnicode(a3)
    + " \n4) " + ChangeEncoding.toUnicode(a4) + " \n");
   }
  } catch(ClassNotFoundException e) {
   System.out.println("Driver error!");
  } catch (SQLException e) {
   System.out.println("SQL error!");
  }   
 }
}

댓글

이 블로그의 인기 게시물

[자바기초] jxl을 이용하여 자바에서 엑셀파일 읽고,쓰기

[자바기초] Vector, Iterator를 이용해서 정수 삽입후 모든 정수 출력 및 합산

[자바기초] HashMap으로 [학생 이름, Student 객체]를 이용하여 저장, 출력