'Programming'에 해당되는 글 8건

  1. 2009.03.17 펼침 숨김 열기 닫기
  2. 2008.01.11 Windows 개발시 유용한 Utility
  3. 2008.01.11 ATL 컴파일 에러
  4. 2007.12.10 JAVA DB 연결 하기
  5. 2007.12.06 replaceAll 구현
  6. 2007.12.05 java 에서 unsigned int ( byte의 값을 int로 변환)
  7. 2007.12.05 텍스트 박스 포커스 다음 입력칸으로 자동 이동
  8. 2007.11.28 jar

펼침 숨김 열기 닫기

열기!

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

닫기


사용 방법
<a onclick="this.nextSibling.style.display=(this.nextSibling.style.display=='none')?'block':'none';" href="javascript:void(0)">열기!</a>
<div style="DISPLAY: none">
     ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
     <a onclick="this.parentNode.style.display='none';" href="javascript:void(0)">닫기</a>
</div>

Windows 개발시 유용한 Utility

ATL 컴파일 에러

ATL Release Mode로 컴파일 할때

LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

와 같은 에러가 발생 할 경우

Project -> Setting -> c/c++ 탭 -> General 카테고리 -> Preprocessor Definition 에서

_ATL_MIN_CRT <-- 이것을 제거 한다.

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());
   }
  }
 }
}

replaceAll 구현

java sdk 1.3 이하에서는 replaceAll이 구현되어 있지 않다.
public static String replaceAll( String source, String toReplace, String replacement )

{

           int idx = source.lastIndexOf( toReplace );

           if ( idx != -1 )

           {

                     StringBuffer ret = new StringBuffer( source );

                     ret.replace( idx, idx+toReplace.length(), replacement );

                     while( (idx=source.lastIndexOf(toReplace, idx-1)) != -1 )

                                ret.replace( idx, idx+toReplace.length(), replacement );

                     source = ret.toString();

           }

           return source;

}

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 를 지원할 필요가 없다고 생각한게 아닐까요? 라는 생각을 해봤습니다.

텍스트 박스 포커스 다음 입력칸으로 자동 이동

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>무제 문서</title>
</head>
<script>
//다음 칸으로 이동
function moveFocus(num,here,next){
 var str = here.value.length;
 if(str == num)
    next.focus();
 }
</script>
<body>
<FORM METHOD='POST' NAME='modify' ACTION=''>
 <table width="921" border="1" cellspacing="0" cellpadding="0">
     <tr>
   <td width="917">
        <input type="text" name="gve_date_from" value="20070401" SIZE='9' onFocus="this.select()" maxlength=8 onKeyPress="onlyNum()" onKeyUp="moveFocus(8,this,this.form.gve_date_to);"> ~
             <input type="text" name="gve_date_to" value="20070401" SIZE='9' onFocus="this.select()" maxlength=8 onKeyPress="onlyNum()">
    1. 마우스 텍스트 박스 클릭하면 전체 선택. 2. 8자리 입력하면 자동으로 다음 텍스트 박스로 커서 이동.
          </td>
  </tr>
  <tr>
   <td>
    <INPUT TYPE='text' NAME='regnum1' SIZE='6' MaxLength='6' onKeyUp="moveFocus(6,this,this.form.regnum2);"> -
    <INPUT TYPE='text' NAME='regnum2' SIZE='7' MaxLength='7' >
    1. 주민번호 앞자리 6자리 입력 후 다음 입력칸으로 이동.
   </td>
  </tr>
  </table>
</form>
</body>
</html>

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