'Programming/JAVA'에 해당되는 글 3건

  1. 2007.12.10 JAVA DB 연결 하기
  2. 2007.12.05 java 에서 unsigned int ( byte의 값을 int로 변환)
  3. 2007.11.28 jar

JAVA DB 연결 하기

1.odbc인 경우


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jbdc:odbc:FirstDB");

conn=DriverManager.getConnection("jbdc:odbc:DNSname","id","pass");

 ▒▒ 연결셋팅 ▒▒

시작→제어판→관리도구→데이터원본→시스템DSN→추가→microsoft access driver선택


 

2.oracle인경우


Class.forName("oracle.jdbc.driver.OracleDriver");

conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:system_id","scott",tiger");


 ▒▒ 연결셋팅 ▒▒


★윈도우환경셋

시작→제어판→관리도구→데이터원본→시스템DSN→추가→microsoft ODBC for Oracle선택


★직접셋팅

C:\oracle\product\10.2.0\db_1\jdbc\lib 폴더의 ojdbc14.jar 복사해서

C:\jdk1.6\jre\lib\ext 와  C:\jre1.6\lib\ext 에 복사


★mysql connector설치

홈페이지(www.mysq.com)에서 mysql-connector-java-5.1.0.zip다운후 압축풀고

mysql-connector-java-5.1.0-bin.jar 파일을 C:\jdk1.6\jre\lib\ext 와

C:\jre1.6\lib\ext 에 복사


★입클립스 셋팅

Window→reperences→installed JREs에서 jre1.6선택후 Edit클릭→JRE home directory에서 위에서 복사한

C:\oracle\product\10.2.0\db_1\jdbc\lib 폴더의 ojdbc14.jar선택→OK

★Db 이름 찾기

C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN폴터의 tnsnames.ora파일을 열어서확인

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 702E3)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)  <--요기 orcl이 이름
    )
  )



3.mysql인경우

Class.forName("org.gjt.mm.mysql.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myDB","root",kbj002");

Class.forName("com.mysql.Driver");
            String url="jdbc:mysql://localhost:3306/test";
            String id="root";
            String pwd="";
con=DriverManager.getConnection(url,id,pwd);





---------------------------- Odbc 예   제 -----------------------------------------

import java.sql.*;

public class DriverTest{

 public static void main(String grgs[]){
  Connection con;

  try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   con = DriverManager.getConnection("jdbc:odbc:jdbc","java","java");
   System.out.println("Success!");
  }
  catch(SQLException ex){System.out.println("SQLException:"+ex);}
  catch(Exception ex){System.out.println("Exception:"+ex);}
 }
}

----------------------------odbc 예   제 -----------------------------------------

import java.io.*;
import java.sql.*;


class JDBC_Select{
 public static void main(String grgs[]){
  String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
  String url="jdbc:odbc:jdbc";

  Connection con=null;
  Statement stmt=null;
  ResultSet rs=null;
 
  String sql="select * from member";
  try{
   Class.forName(driver);
   con=DriverManager.getConnection(url,"java","java");
   stmt=con.createStatement();
   rs=stmt.executeQuery(sql);
   System.out.println("ID1\t\t id\t\t pass\t\t name\t\t e_mail\t\t\t\t phone\t\t zipcode\t job");
   System.out.println("-------------------------------------------------------------------------------------------");
   while(rs.next()){
    System.out.print(rs.getLong("ID1")+"\t\t");
    System.out.print(rs.getString("id")+"\t\t");
    System.out.print(rs.getString("pass")+"\t\t");
    System.out.print(rs.getString("name")+"\t\t");
    System.out.print(rs.getString("e_mail")+"\t\t");
    System.out.print(rs.getLong("phone")+"\t\t");
    System.out.print(rs.getString("zipcode")+"\t\t");
    System.out.println(rs.getString("job")+"\t\t");
   }
  }catch(Exception e){
   System.out.println("데이터 베이스 연결 실패");
  }
  finally{
   try{
    if(rs!=null)rs.close();
    if(stmt!=null)stmt.close();
    if(con!=null)con.close();
   }catch(Exception e){
    System.out.println(e.getMessage());
   }
  }
 }
}

----------------------------odbc 예   제 -----------------------------------------

import java.io.*;
import java.sql.*;


class JDBC_Select1{
 public static void main(String grgs[]){
  String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
  String url="jdbc:odbc:jdbc1";

  Connection con=null;
  Statement stmt=null;
  ResultSet rs=null;
 
  String sql="select * from member";
  try{
   Class.forName(driver);
   con=DriverManager.getConnection(url,"java","java");
   stmt=con.createStatement();
   rs=stmt.executeQuery(sql);
   
   ResultSetMetaData rsm=rs.getMetaData();
   int cols=rsm.getColumnCount();

   for (int i=1; i<=cols; i++){
    System.out.print(rsm.getColumnName(i)+"\t\t");
   }
   System.out.println();
   while(rs.next()){
       
   for(int i=1; i<=cols; i++){
    System.out.print(rs.getObject(i)+"\t\t");
   }
    System.out.println();
   }
  }catch(Exception e){
   System.out.println("데이터 베이스 연결 실패");
  }
  finally{
   try{
    if(rs!=null)rs.close();
    if(stmt!=null)stmt.close();
    if(con!=null)con.close();
   }catch(Exception e){
    System.out.println(e.getMessage());
   }
  }
 }
}


---------------------------- Oracle 예   제 -----------------------------------------


import java.io.*;
import java.sql.*;


class JDBC_Select2{
 public static void main(String grgs[]){
  String driver ="oracle.jdbc.driver.OracleDriver";
  String url="jdbc:oracle:thin:@localhost:1521:orcl";

  Connection con=null;
  Statement stmt=null;
  ResultSet rs=null;
 
  String sql="select * from emp";
  try{
   Class.forName(driver);
   con=DriverManager.getConnection(url,"scott","tiger");
   stmt=con.createStatement();
   rs=stmt.executeQuery(sql);
   
   ResultSetMetaData rsm=rs.getMetaData();
   int cols=rsm.getColumnCount();

   for (int i=1; i<=cols; i++){
    System.out.print(rsm.getColumnName(i)+"\t\t");
   }
   System.out.println();
   while(rs.next()){
       
   for(int i=1; i<=cols; i++){
    System.out.print(rs.getObject(i)+"\t\t");
   }
    System.out.println();
   }
  }catch(Exception e){
   System.out.println("데이터 베이스 연결 실패");
  }
  finally{
   try{
    if(rs!=null)rs.close();
    if(stmt!=null)stmt.close();
    if(con!=null)con.close();
   }catch(Exception e){
    System.out.println(e.getMessage());
   }
  }
 }
}

---------------------------- MySql 예   제 -----------------------------------------


import java.io.*;
import java.sql.*;


class JDBC_Select3{
 public static void main(String grgs[]){
  String driver ="com.mysql.jdbc.Driver";
  String url="jdbc:mysql://localhost:3306/mysql";
 
  Connection con=null;
  Statement stmt=null;
  ResultSet rs=null;
 
  String sql="select * from personal";
  try{
   Class.forName(driver);
   con=DriverManager.getConnection(url,"root","");
   stmt=con.createStatement();
   rs=stmt.executeQuery(sql);
   
   ResultSetMetaData rsm=rs.getMetaData();
   int cols=rsm.getColumnCount();

   for (int i=1; i<=cols; i++){
    System.out.print(rsm.getColumnName(i)+"\t\t");
   }
   System.out.println();
   while(rs.next()){
       
   for(int i=1; i<=cols; i++){
    System.out.print(rs.getObject(i)+"\t\t");
   }
    System.out.println();
   }
  }catch(Exception e){
   System.out.println("데이터 베이스 연결 실패");
  }
  finally{
   try{
    if(rs!=null)rs.close();
    if(stmt!=null)stmt.close();
    if(con!=null)con.close();
   }catch(Exception e){
    System.out.println(e.getMessage());
   }
  }
 }
}

java 에서 unsigned int ( byte의 값을 int로 변환)

일단 JAVA가 C/C++의 unsigned 를 지원하지 않는건 맞구요,
그런 문제가 발생한다면 아래와 같은 식으로 해주시면 됩니다.

int val = myByte < 0 ? ( Byte.MAX_VALUE + 1 ) * 2 + myByte : myByte;

코드를 보시면 왜 저렇게 써야하는지는 이해를 할 수 있으리라 보네요.
log 의 경우에도 이런식으로 하시면 될것 같구요, 그리고 특별히
Byte, Integer, Long 등의 래퍼클래스의 MAX_VALUE나 MIN_VALUE를 넘지 않는 한은
특별히 신경쓸 이유도 없습니다.(당연하겠지만...)

저도 정확히는 알 수 없습니다만, 자바에서는 자체적으로 BigDecimal 등을 이용해서
C보다 더 큰 숫자를 표현할 수 있는 방법을 제공해 주기 때문에 굳이 C처럼
unsigned 를 지원할 필요가 없다고 생각한게 아닐까요? 라는 생각을 해봤습니다.

jar

1. 압축할때

jar cvf create.jar a.class b.class cDirectory

a.class,b.class,cDirectory를 create.jar라는 이름으로 생성합니다.


2. 압축풀때

jar xvf create.jar

create.jar의 내용을 추출합니다.


3. 압축된내용보기

jar tvf create.jar

create.jar의 내용을 봅니다.


사용법: jar {ctxu}[vfm0M] [jar-file] [manifest-file] [-C dir] files ...
옵션:
    -c  새 아카이브를 만듭니다.
    -t  아카이브에 대한 목차를 나열합니다.
    -x  아카이브에서 명명된 (또는 모든) 파일을 추출합니다.
    -u  기존의 아카이브를 업데이트합니다.
    -v  표준 출력에 대한 자세한 정보 출력을 생성합니다.
    -f  아카이브 파일 이름을 지정합니다.
    -m  지정된 증명 파일에서 증명 정보를 포함시킵니다.
    -0  저장만 수행하며 ZIP 압축을 사용하지 않습니다.
    -M  입력 항목에 대한 증명 파일을 만들지 않습니다.
    -i  지정된 jar 파일에 대한 색인 정보를 생성합니다.
    -C  지정된 디렉토리로 변경하고 다음 파일을 포함시킵니다.
디렉토리인 파일이 하나라도 있으면 재귀적으로 처리됩니다.
'm' 및 'f' 플래그가 지정된 순서대로 증명 파일 이름과 아카이브 파일
이름을 지정해야 합니다.

예 1: classes.jar라는 아카이브 파일에 두 클래스 파일을 아카이브하려면 :
       jar cvf classes.jar Foo.class Bar.class
예 2: 기존의 증명 파일 'mymanifest'를 사용하고 foo/ 디렉토리에 있는
           모든 파일을 'classes.jar'로 아카이브합니다:
       jar cvfm classes.jar mymanifest -C foo/ .

prev 1 next