2008. 9. 8. 18:49

오라클을 설치할 때, 제품별 필요검사를 실시하다가 다음과 같은 에러를 만나는 경우가 있다.


---

>>검사가 완료되었습니다. 이 검사에 대한 전반적인 검사 : 실행되지 않음<<

권장사항 : 오라클은 DHCP 할당 방식의 IP주소를 사용하는 시스템에서의 설치를 지원합니다.

그러나 그렇게 하기 위해서는 먼저 MICROSOFT의 LOOPBACK ADAPTER를

시스템의 기본 네트워크 어댑터로 구성해야 합니다.

어쩌구저쩌구...

---


에러가 발생한다고 해서 오라클이 설치되지 않거나 문제가 발생하는 것은 아니지만,

뭔가 찝찝한 것이 싫다면 아래처럼 루프백 어댑터를 설치해 보자.


1. 시작을 누른 다음 제어판을 누릅니다.
2. 클래식 보기에 있을 경우에는 제어판의 왼쪽 창에서 종류별 보기로 전환을 누릅니다.
3. 프린터 및 기타 하드웨어를 두 번 누르고 다음을 누릅니다.
4. 왼쪽 창의 참고 항목에서 새 하드웨어 추가를 누르고 다음을 누릅니다.
5. 예, 하드웨어를 연결했습니다.를 누르고 다음을 누릅니다.
6. 목록 맨 아래에서 새 하드웨어 장치 추가를 누르고 다음을 누릅니다.
7. 목록에서 직접 선택한 하드웨어 설치를 누르고 다음을 누릅니다.
8. 네트워크 어댑터를 누르고 다음을 누릅니다.
9. 제조업체 상자에서 Microsoft를 누릅니다.
10. 네트워크 어댑터 상자에서 Microsoft Loopback Adapter를 누르고 다음을 누릅니다.
11.

마침을 누릅니다.


---

XP일 경우, 비스타도 비슷함.


IP는 192.168.0.1

서브넷마스크는 255.255.255.0을 입력한다.

2008. 6. 30. 23:09

어느사이엔가 데이터베이스 모델링 툴의 대명사가 되어버린 ERWin. 데이터베이스 설계(대부분은 테이블레이아웃 만드는걸로 데이터베이스 설계를 대체하긴 하지만 -_-)작업 자체가 소프트웨어 프로젝트의 필수공정이다보니 사실 프로그래머치고 ERWin을 써보지 않았거나 들어보지 않은 사람은 그닥 많지 않을 것이다.


여담이지만, 변화하는 시대의 흐름을 프로젝트 방법론들이 못따라가고있다는 생각을 많이 한다. 사실 예전처럼 자기 데이터베이스만 덜렁 갖는 독립시스템보다는 서로 네트웤을 통해 연결되어있는 시스템들이 대세를 이루고 있지 않은가.


이 경우 자기 데이터베이스가 아니라 남의 데이터베이스를 소켓, Tuxedo 등의 RPC성 서비스, 웹서비스 콜, LDAP 조회 등 다양한 방법을 통해 읽어오는 경우가 많은데, 보통들 보면 테이블 없어서 개발못한다는 얘기는 해도 인터페이스 명세 없어서 개발 못한다는 얘기들은 안하는걸 보면, 다들 인터페이스는 시스템 설계단계에서 풀어야 할 문제가 아니라 해당 인터페이스를 필요로 하는 개별 개발자가 알아서 해결해야할 문제로 보고있지 싶다.


어쨌든, ERWin을 사용하게 되면 여간 골치아프지 않은 문제 중의 하나가 바로 mysql과의 궁합 문제이다. 이놈의 모델링툴이 mysql을 지원하지 않기 때문. 지금도 구글에서 mysql erwin으로 검색해보면 왜 이게 지원이 안되냐고 아우성치는 수많은 모델러 및 개발자들을 만날 수 있다.


일단 다소간의 아쉬움을 달래보고자, ODBC를 이용해서 ERWin을 mysql에 붙이는 방법을 소개한다. 단, 이 방법은 auto_increment와 같은 mysql만의 독자기능을 전혀 수용하지 못하므로, 이미 존재하는 데이터베이스 스키마에서 ERD를 뽑아내서 산출물 목록에 살포~시 끼워넣는 정도로 활용하도록 하자.


아래에서는 위와 같이 ERWin의 reverse engineering을 이용해 ERD를 뽑아내는 예제를 보이고자 한다. 귀차니즘으로 인해 설명은 생략하나, 스크린샷이 워낙 직관적이므로 큰 무리는 없으리라 생각한다. ^^


1. Mysql ODBC 설치

-ODBC 드라이버 최신버전을 http://dev.mysql.com/downloads/connector/odbc/3.51.html에서 다운받아 설치



2. ODBC 데이터소스 설정


-제어판 > 관리도구 > 데이터원본(ODBC)를 실행하면 아래와 같은 화면이 나온다. '추가' 선택



-MySQL에 연결할 데이터소스 만들어야 하므로 MySQL 선택



-데이터소스 접속정보를 입력한다. 실제 내용은 보안상 생략 ^^




-짜잔~ comictestdb라는 이름의 ODBC 데이터소스가 생성되었다.




3. ERWin 실행하여 reverse engineering


-Tools > Reverse Engineer 메뉴 선택




-모델종류 선택: Physical만 선택해도 상관없으나 혹시 나중에 논리모델을 추가할 경우를 대비해서 Logical/Physical 선택




-Stored Procedure같은건 제외하고 Table만 가져오기 선택




-그렇게 하고 나면 접속창이 뜬다. Database에는 아까 ODBC 설정에서 만들어둔 ODBC 데이터소스를 선택.




-짜잔~ ERD가 뜬다. 인자 모델들간의 상관관계만 선으로 찍찍 연결해주면 끝.





<출처:http://tong.nate.com/zauin09/12220478>
2008. 6. 27. 16:21

sql 문법

Java/SQL 2008. 6. 27. 16:21
※데이타베이스
: 많은양의 자료를 특정한 규칙에 맞게 저장장치에 보관하여 필요한
  업무에 사용하는 저장매체
※ DBMS
    데이타베이스 안에 있는 데이타를 관리하는것
    (읽기,변경,삭제,추가가 가능)

※기본적인 SQL문
1. create문(테이블생성)
create table 테이블명(필드이름  데이터타입  [not null], 필드이름 데이터타입 [not null].........);
예) create table member(name varchar(20), email varchar(30));

2. drop문
drop tabele 테이블명 : 테이블제거
drop database 데이타베이스명 :DB삭제
예)drop table member;  //member테이블 제거

3. alter문(table구조변경)
alter table 테이블이름 add 필드이름 데이터타입 [not null];
예)alter table member add addr varchar(50);    //member테이블에 addr필드 추가
   alter table 테이블명 add  primary key (필드명)  //기본키설정

4. use 데이타베이스명(사용할 데이타베이스)
예) use member;

5. show 테이블명/show 데이타베이스명 (테이블/DB보기)
예) show member
    show mem_table

6. desc 테이블명(테이블속성(구조)보기)
 예) desc mem_table

7. 질의문(Query)
(1) select문(테이블의 레코드 검색)
select 필드리스트 from 테이블명 [where 조건] [group by 필드리스트] [having 조건] [order by 필드리스트 [asc | desc]];
예) select * from member where addr like '%서울%'

(2) insert문(테이블에 레코드 추가)
insert into 테이블명 [(필드이름1, 필드이름2....)] value (data1,data2...)
예)insert into member(name, email, addr) values ('magic', ;magic@m.com', '서울');

(3) delete문(레코드 삭제)
delete from 테이블명 [where 조건]
예)delete from member name = 'magic'

(4) update문(데이터의 값변경)
update 테이블리스트 set 필드이름1=data1, 필드이름2=data2......where 조건문
예)update member set tel='123-4567' where name='magic'

=======================================================================================
JDBC 드라이버 로드  -> 데이타베이스 연결 -> SQL문실행 -> 결과처리 -> 데이터베이스와 연결 해제


1단계 : JDBC드라이버 로드
Class.forName("드라이버종류");

★ 드라이버 종류
1. Access드라이버(ODBC) : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2. MySQL 드라이버:        Class.forName(“com.mysql.jdbc.Driver”);
3. 오라클 드라이버 :      Class.forName(“oracle.jdbc.driver.OracleDriver”);
4. MS-SQL 드라이버 :      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver ");

ODBC(Open DataBase Connectivity)
JDBC (Java DataBase Connectivity)
--------------------------------------------------------------------------------------
2단계 :  데이터베이스 연결객체 생성
Connection con = DriverManager.getConnection(url, uid, pwd);
url : JDBC형식의 url
uid : 사용자명
pwd : 패스워드

예)Connection con = DriverManager.getConnection("jdbc:odbc:jdbc", "master","java");

1. Access인경우 : jdbc:odbc:ODBC명
2. 오라클인경우 : jdbc:oracle://localhost:1521:SID
3. MySQL인경우  : jdbc:mysql://localhost:3306/DB명
4. MS-SQL인경우 : jdbc:Microsoft:sqlserver://localhost:1433;databasename=DB명

★ sql 에서 한글이 깨질경우
url에    jdbc:mysql://localhost:3306/DB명?useUnicode=true&characterEncoding=euckr
---------------------------------------------------------------------------------------
3단계 : SQL문실행
(방법1)
Statement stmt=null;
stmt = conn.createStatement();
String sql="insert into PostDBTest values +"('"+sname+"','"+stel+"','"+saddr+"')";
stmt.executeUpdate(sql);

(방법2)
PreparedStatement pstmt=null;
String sql="insert into PostDBTest values(?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, sname);
pstmt.setString(2, stel);
pstmt.setString(3, saddr);
pstmt.executeUpdate();

(참고)-------------------------------------------------------------------------------
i)  executeUpdate() : insert, update, delete, create문
II) executeQuery() : select문

int executeUpdate()
int : 처리된 결과 개수 (입력 or 수정된 개수 …)
ResultSet exeucteQuery()
ResultSet : select문의 결과 집합 (테이블)
Cursor의 위치를 이동(next())해 가며 결과를 가져옴(getXxxx())

예)
String query = “SELECT COF_NAME, PRICE FROM COFFEES”;
ResultSet rs = stmt.executeQuery(qeury);
while( rs.next() )
{
    String s = rs.getString(“COF_NAME”);
    float n = rs.getFloat(“PRICE”);
    System.out.println(s + “ “ + n);
}
----------------------------------------------------------------------------------------
4단계 : 결과처리
String str = "select name,age from member";
ResultSet rs = stmt.executeQuery(str);
--------------------------------------------------------------------------------------
5단계 : 데이타베이스와 연결해제
rs.close();    //ResultSet해제
stmt.close();  //Statement해제
con.close();   //Connection해제

★레코드이동
next() : 다음레코드
previouse() : 이전레코드
first() : 첫레코드
last() : 마지막레코드
====================================================================
※ DB설치
1. MySQL 5.0.x 설치
    http://www.mysql.com 에서 다운 받으시오 ^^
    (mysql-essential-5.0.22-win32.msi)
    설치후.......
    시작 -> 설정 -> 제어판 -> 관리도구 -> 컴퓨터관리 -> 서비스및 응용프로그램 ->
    서비스 -> mysql (자동) 확인

2. MySQL-Front 3.2 설치
   (MySQL-Front_Setup3.2.exe)

3. JDBC드라이버 설치
    (mysql-connector-java-3.1.12.zip)
    C:\Java\mysql-connector-java-3.1.12

     해당 DB 드라이버(mysql-connector-java-3.1.12-bin.jar)를
     JAVA_HOME/jre/lib/ext 와 TOMCAT_HOME/common/lib 아래에 복사

4. Database별 Driver 와 connection URL
DATABASE  |   VALUE
----------------------------------------------------------------------------------
ORACLE    |  DRIVER  |   oracle.jdbc.driver.OracleDriver
          |  URL     |   jdbc:oracle:thin:@hostname:port:SID
MSSQL     |  DRIVER  |   com.microsoft.jdbc.sqlserver.SQLServerDriver
          |  URL     |   jdbc:Microsoft:sqlserver://localhost:1433;databasename=DB명
MYSQL     |  DRIVER  |   org.gjt.mm.mysql.Driver
          |          |   (또는)com.mysql.jdbc.Driver
          |  URL     |   jdbc:mysql://localhost:3306/DB명



















                                         
2008. 6. 20. 16:35

[텔넷] Putty

Java 2008. 6. 20. 16:35
2008. 6. 19. 09:31

찾기 힘들어~..

2008. 6. 13. 10:23

-------------------소스-----------------------------------
<%--plugin.jsp-->


<%@ page contentType="text/html;charset=KSC5601" %>
<html>
<title> plugin 테스트 </title>
<body>
<center><h2>plugin 테스트</h2></center>

<jsp:plugin type="applet" code="PluginApplet" codebase="http://localhost:8090/firejsp/
 jreversion="1.5" width="300" height="250" >
  <jsp:params>
   <jsp:param name="data"
    value="<jsp:plugin>테스트입니다." />
  </jsp:params>         
    <jsp:fallback>
        Plugin tag OBJECT or EMBED not supported by browser.
    </jsp:fallback>
</jsp:plugin>
</body>
</html>


//PluginApplet.java


import java.awt.*;
import javax.swing.*;
import java.applet.*;

public class PluginApplet extends JApplet {
 JMenuBar bar;
 JMenu file, edit;
 JMenuItem fileNew, fileOpen, fileSave;
 JTextArea text;
 
 public void init() {
  bar= new JMenuBar();
  file=new JMenu("File");
  edit=new JMenu("Edit");
  bar.add(file);
  bar.add(edit);
 
  fileNew=new JMenuItem("New");
  fileOpen=new JMenuItem("Open");
  fileSave=new JMenuItem("Save");
 
  file.add(fileNew);
  file.add(fileOpen);
  file.add(fileSave);
 
  setJMenuBar(bar);
 
  String data=getParameter("data");
 
  text=new JTextArea(data);
  JScrollPane sp=new JScrollPane(text);
 
  getContentPane().setLayout(new BorderLayout());
  getContentPane().add(sp,"Center");
 }
}
--------------------------------------------------------------------------------

-------------------------저장방법-------------------------------
PluginApplet.java파일과 컴파일한 class파일을 plugin.jsp가 저장된 폴더에 함께 넣는다.

codebase경로 설정은 위와 같이 해줘야 Applet이 수행된다.

또한가지 혹시 익스플로러 인터넷 옵션>고급에서 JAVA <Applet>기능이 체크되어 있지 않다면
반드시 체크하고 확인해준다.

아래 Eclipse 화면에서 보는 것과 같이 해준다.(수동으로 폴더 이동시 새로고침 F5)

사용자 삽입 이미지

* 한참동안 codebase를 찾지 못해 고생했다. 그냥 이렇구나 하고 알고 넘어가면 될 것을
왜 이렇게 집착했는지.. 난 단지 화면에서 Applet을 보고 싶었을 뿐이었는데..ㅜㅜ;
혹시나 이글을 보고 나같이 study진행에 차질이 없길 바라며 도움이 되길..
2008. 4. 7. 12:14

package ex0407;

import java.awt.*;

class ScrollBar1 extends Frame
{
 public ScrollBar1(String str)
 {
 
  super(str);
  Panel c=new Panel();//패널 생성
  Label lbl=new Label("scroll");
  c.add(lbl);//생성된 레이블을 패널안에 삽입
  Scrollbar srb1= new Scrollbar(Scrollbar.VERTICAL,10,100,0,255);
  Scrollbar srb2= new Scrollbar(Scrollbar.HORIZONTAL,10,50,0,255);
  add("West",srb1);
  add("Center",c);
  add("South",srb2);
  setSize(200,200);
  setVisible(true);
  lbl.setBackground(Color.green);//레이블 색상지정
 
 }

 public static void main(String[] args)
 {
  new ScrollBar1("Scroll Ex");
 }

}

2008. 4. 7. 12:10

package ex0407;

import java.awt.*;
import java.awt.event.*;

class ScrollBar2 extends Frame implements AdjustmentListener
{
 /**
  *
  */
 private static final long serialVersionUID = 1L;
 Scrollbar red, green, blue;
 Panel panel1, panel2;
 public ScrollBar2(String str)
 {
  super(str);
  red = new Scrollbar(Scrollbar.VERTICAL, 0, 10,0,255);
  green = new Scrollbar(Scrollbar.VERTICAL, 0, 10,0,255);
  blue = new Scrollbar(Scrollbar.VERTICAL, 0, 10,0,255);
 
  red.addAdjustmentListener(this);
  green.addAdjustmentListener(this);
  blue.addAdjustmentListener(this);
 
  panel1 = new Panel();
  panel2 = new Panel();
  panel1.setSize(200,100);
  panel2.setSize(200,100);
  panel2.add(red);
  panel2.add(green);
  panel2.add(blue);
  add("Center", panel1);
  add("South", panel2);
  setSize(200,200);
  setVisible(true);
 }
 
  public  void adjustmentValueChanged(AdjustmentEvent e)
  {
   panel1.setBackground(new Color(red.getValue(), green.getValue(), blue.getValue()));
  }
  public static void main(String[] args)
  {
   new ScrollBar2("Scroll");
  }
}

2008. 4. 4. 09:17

CVSnt

Java 2008. 4. 4. 09:17
[메뉴얼 링크]  http://wiki.kldp.org/wiki.php/WinCVS
http://wiki.kldp.org/wiki.php/%B0%B3%B9%DF%C0%DA%C4%DA%B3%CA#s-3.4.1

---------------------따라해보자!!------------------------
temp0, temp1, temp2폴더를 만든다.
temp0 폴더에 임의의 텍스트 파일을 두개 만든다.
color.txt, number.txt

[import 방법]-upload
임포트 시키고 싶은 폴더로 이동한다.(예 : c:\work\test>)

c:\work\temp0> cvs -d c:\cvs import -n "연습" test test initial
(cvs root가 저장되어있는 폴더로 파일을 임포트 시킨다)

[check out]-download
임포트 되어있는 파일을 가져온다.

c:\work\temp1> cvs -d c:\cvs co test
                                         (checkout)

파일이 저장되어있는 폴더의 내용을 수정한다.

** 폴더에 파일이 추가 안되었을 경우**
c:\test\temp2> cvs add color.txt

[수정내용확인]
각 폴더 확인

 폴더경로 > cvs status color.txt
                 cvs diff color.txt <---어떤내용이 수정되었는지 확인
 
[수정파일 업데이트]

수정 폴더 >cvs update [color.txt]<-- 써도되고 안써도 된다.
수정확인이 안될때
cvs commit -m "내용추가" [color.txt]

cvs status color.txt 로 확인

다른 컴퓨터에서는 수정된 내용을 업데이트 받는다
각 폴더 또는 컴퓨터 > cvs update [파일명]

[변경과정 보기]
cvs log [파일명]

[차이가 있는지 확인]

cvs diff --side-by-side [파일명] <----내컴퓨터에서 비교할때
cvs diff -rHEAD [파일명] <----서버안에 있는 최신버젼하고 비겨할때

2008. 4. 3. 10:21
컴파일하기
메뉴제목 : java compile
명령 : C:\Program Files\Java\jdk1.6\bin\javac.exe
인수 : $(FileName)
디렉토리 : $(FileDir)

실행
Java run
C:\Program Files\Java\jdk1.6\bin\java.exe
-classpath "c:\temp2" $(Prompt)$(FileNameNoExt)
===>패키지 파일 저장 $(Prompt)대신 경로 설정 하려면(ex: abc.def.)
$(FileDir)

인수내용 묻기
Java input
C:\Program Files\Java\jdk1.6\bin\java.exe
$(FileNameNoExt) $(Prompt)
$(FileDir)

패키지로 컴파일하기
Java package compile
javac.exe
-d "c:\temp2" -classpath "c:\temp2" $(FileName)
$(FileDir)