728x90
300x250

[PHP] Oracle, MySQL - PDO 사용방법

 

간결하게 요약해서 작성해보았다.

 


1. Oracle, MySQL 데이터베이스 설계하기

 

데이터베이스를 하나 생성한다.

Member를 생성한다.

 

 

그림 1) Oracle SQL Developer에서 Member 테이블 생성하기(Oracle 18c Express Edition)

 

 

그림 2) HeidiSQL에서 Member 테이블 생성하기(MySQL)

 

 
  CREATE TABLE "C##RABBITSUN2"."MEMBER"
   ( "ID" VARCHAR2(20 BYTE) NOT NULL ENABLE,
 "SUBJECT" VARCHAR2(20 BYTE),
  CONSTRAINT "MEMBER_PK" PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ;

  CREATE OR REPLACE EDITIONABLE TRIGGER "C##RABBITSUN2"."MEMBER_TRG"
BEFORE INSERT ON MEMBER
FOR EACH ROW
BEGIN
  <<COLUMN_SEQUENCES>>
  BEGIN
       IF INSERTING AND :NEW.ID IS NULL THEN
           SELECT MEMBER_SEQ.NEXTVAL INTO :NEW.ID FROM SYS.DUAL;
           END IF;
  END COLUMN_SEQUENCES;
END;
/
ALTER TRIGGER "C##RABBITSUN2"."MEMBER_TRG" ENABLE;

 Oracle SQL

 CREATE TABLE `member` (
     `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
     `subject` VARCHAR(50) NULL DEFAULT NULL,
      PRIMARY KEY (`id`)
 )
 COLLATE='utf8_general_ci'
 ENGINE=InnoDB
 AUTO_INCREMENT=1;

 MySQL SQL

 

 

 


2. Oracle, MySQL - PDO 사용방법(소스코드)

 

<?php

/*
 * Subject: PDO
 * Created Date: 2019-12-10
 * Author by: 도도(Dodo) / rabbitsun2@gmail.com
 * Description:
 *
 * Reference:
 * 
 */

include 'MySQLDB.php';
include 'OracleDB.php';

$orcl = new OracleDB('127.0.0.1', 'c##rabbitsun2', '1234');
$orcl->connect();

// SELECT 문(OracleDB)
$query = "SELECT * FROM MEMBER";
$list = $orcl->select($query);

/*
foreach($list as $row){
   
    echo $row["ID"] . "/";
    echo $row["SUBJECT"] . "<br>";
   
}
*/

// INSERT 문(OracleDB)
//$subject = '연습';
//$result = $orcl->insert($subject);

$mysqlDB = new MySQLDB('127.0.0.1', 'rabbit2me', '1234', 'rabbit2me');
$mysqlDB->connect();

$list = $mysqlDB->select($query);

foreach($list as $row){
   echo $row["id"] . "/";
   echo $row["subject"] . "<br>";
}
 
$subject = '연습';
$result = $mysqlDB->insert($subject);

?>


[소스코드: index.php]

 

?>

class MySQLDB{
   
    private $hostName;
    private $userName;
    private $passwd;
    private $tns;
    private $dbh;
   
    public function __construct($hostName, $userName, $passwd, $dbname){
       
        $this->tns = "mysql:host=$hostName;dbname=$dbname";
       
        $this->hostName = $hostName;
        $this->userName = $userName;
        $this->passwd = $passwd;
       
       
    }
   
    public function __destruct(){
        unset($this->dbh);
    }
   
    public function connect(){
       
        $tns = $this->tns;
        $db_username = $this->userName;
        $db_password = $this->passwd;
       
        try{
            $this->dbh = new PDO($this->tns, $db_username, $db_password,
                array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
            //echo "참";
        }catch(PDOException $e){
            echo ($e->getMessage());
        }
       
    }
   
    public function select($query){
       
        $stmt = NULL;
        $dbh = $this->dbh;
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->execute();
            $list = $stmt->fetchAll();
           
            return $list;
        }
       
        return NULL;
       
    }
   
    public function insert($subject){
       
        $stmt = NULL;
        $dbh = $this->dbh;
        $query = "INSERT INTO member(subject) VALUES(:subject)";
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->bindParam(':subject', $subject);
            $stmt->execute();
           
            return true;
        }
       
        return false;
       
    }
   
}

?>


[소스코드: MySQLDB.php]

 

?>
class OracleDB{
   
    private $hostName;
    private $userName;
    private $passwd;
    private $tns;
    private $dbh;
   
    public function __construct($hostName, $userName, $passwd){
       
        $this->tns = "(DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = $hostName)(PORT = 1521))
            )
            (CONNECT_DATA =
              (SERVICE_NAME = xe)
            )
        )";
       
        $this->hostName = $hostName;
        $this->userName = $userName;
        $this->passwd = $passwd;
        $this->dbh = NULL;
       
    }
   
    public function __destruct(){
        unset($this->dbh);
    }
   
    public function connect(){
       
        $tns = $this->tns;
        $db_username = $this->userName;
        $db_password = $this->passwd;
       
        try{
            $this->dbh = new PDO("oci:dbname=". $tns . ";charset=UTF8", $db_username, $db_password);
            //echo "참";
        }catch(PDOException $e){
            echo ($e->getMessage());
        }
       
    }
   
    public function select($query){
       
        $stmt = NULL;
        $dbh = $this->dbh;
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->execute();
            $list = $stmt->fetchAll();
           
            return $list;
        }
       
        return NULL;
       
    }
   
    public function insert($subject){
        $stmt = NULL;
        $dbh = $this->dbh;
        $query = "INSERT INTO MEMBER(SUBJECT) VALUES(:subject)";
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->bindParam(':subject', $subject);
            $stmt->execute();
           
            return true;
        }
       
        return false;
       
    }
   
}

?>


[소스코드: OracleDB.php]

반응형
728x90
300x250

[PC활용] Oracle 18g Express Edition 설치하기

 

Oracle 18g Express Edition 설치하는 방법에 대해서 소개하겠다.

 

[작성 환경]
Microsoft Windows 10 64bit

 


1. Oracle 18g Express Edition 내려받기

 

https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

 


2. Oracle 18g Express Edition 설치하기

 

 

그림 1) Oracle Database 18c 압축풀기

 

그림 1에서 "setup.exe"를 더블 클릭해준다.

 

 

그림 2) Oracle Database 18c 설치하기

 

잠시 기다린다.

 

 

그림 3) Oracle Database 18c 설치하기

 

"다음(N)"을 클릭한다.

 

 

그림 4) Oracle Database 18c 설치하기

 

라이선스를 읽어본 후 "다음(N)"을 클릭한다.

 

 

그림 5) Oracle Database 18c 설치하기

 

폴더 위치를 지정 후 "다음(N)"을 클릭한다.

 

 

그림 6) Oracle Database 18c 설치하기

 

그림 6에서 데이터베이스 비밀번호를 입력해준다.

그리고 "다음(N)"을 클릭한다.

 

 

그림 7) Oracle Database 18c 설치하기

 

환경 설정에 대한 내용을 검토 후 "설치(I)"를 클릭한다.

 

 

그림 8) Oracle Database 18c 설치하기

 

그림 9) 방화벽에 관한 사항 - Oracle 18c Express Edtion

 

방화벽에 대한 사항이 나온다. "액세스 허용(A)"을 해준다.

 

 

그림 10) Oracle 18c 설치하기

 

잠시 기다리도록 한다.

 

 

그림 11) Oracle 18c 설치하기

 


3. Oracle 18g Express Edition 웹에서 실행하기

오라클 18g을 웹에서 실행한 모습이다.

https://localhost:5500/em

 

그림 12) 웹에서 실행하는 오라클 18g Express Edtion

 

 

반응형
728x90
300x250
[PC활용] Oracle VirtualBox GNU/GPLv2 - 소개, 설치하기

 

Oracle의 VirtualBox에 대해서 소개하겠다.

 


1. VirtualBox 소개

 

VirtualBox에 대해서 소개하겠다.

http://www.virtualbox.org 사이트에 접속하면 아래의 홈페이지를 볼 수 있다.

 

그림 1-1. Oracle VM VirtualBox - 도도(Dodo)

 

 

 

 

그림 1-2. Oracle VM VirtualBox - 도도(Dodo)

 

 

 

 

그림 1-3. Oracle VM VirtualBox - 도도(Dodo)

 

 

 

 

그림 1-4. Oracle VM VirtualBox - 도도(Dodo)

 

그림 1-4는 개발자에 관한 것이다.

소스코드가 공개되어 있다.

 

아래의 링크를 클릭하면, 소스코드가 나온다.

https://www.virtualbox.org/browser/vbox/trunk

 

개발자들은 참고하면 도움이 될 것으로 보인다.

 

 

그림 1-5. 트렁크 사이트(Trunk Site) - Oracle Corporation


2. VirtualBox 설치하기

 

아래의 사이트에 접속하면 다음과 같은 페이지를 볼 수 있다.

https://www.virtualbox.org/wiki/Downloads

 

                                                                                     표 2. 영어 한글로 읽어보기

 

번호

영어 단어(Words)

뜻(Mean)

한글 읽기(Read Hangul)

1

Windows Host

윈도우 호스트

윈도우 호스트

2

OS X Host

맥 OSX 호스트

오에스 엑스 호스트

3

Linux Distributions

리눅스 배포판

리눅스 디스트리뷰션

4

Solaris Hosts

솔라리스 호스트

솔라리스 호스트

 

                                                       표 3. 한글 영어로 읽어보기

 

번호

영어 단어(Words)

한글 읽기(Read Hangul)

한글 표기(Prefix Hangul)

1

Windows Host

윈도우 호스트

윈도우 호스트

2

OS X Host

맥 OSX 호스트

오에스 엑스 호스트

3

Linux Distributions

리눅스 배포판

리눅스 디스트리뷰션

4

Solaris Hosts

솔라리스 호스트

솔라리스 호스트

5

When you access the following site, you can see the following page.

a rae eu site ei jupsukha myum da um gwa ga tun page rul bul su it da.

아래의 사이트에 접속하면 다음과 같은 페이지를 볼 수 있다.

 

 

 

 

그림 2-1. VirtualBox 홈페이지 - 도도(Dodo)

 

VirtualBox 설치에 대해서 소개하겠다.

 

 

그림 2-2. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

"Next"를 클릭한다.

 

 

그림 2-3. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

설치할 내용에 대해서 선택을 한다. "Next"를 클릭한다.

 

 

 

그림 2-4. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

"Next"를 클릭한다.

 

 

그림 2-5. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

네트워크 설정에 관한 것이다. 가상 네트워크 인터페이스를 PC환경에서 설치하는 것이다.

"Yes"를 누른다.

 

 

그림 2-6. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

"Next(다음)"을 누른다.

 

 

 

그림 2-7. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

기다린다.

 

 

그림 2-8. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

범용 직렬 버스 컨트롤러에 대한 설치를 한다.

 

참고하면 도움이 되는 것: 개발자는 "신뢰할 수 있는 게시자"를 신경쓰지 않고 해도 된다.
드라이버를 제작해서 사용하는 경우가 있다.

 

 

그림 2-9. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

기다린다.

 

 

그림 2-10. Oracle VM VirtualBox 5.2.18 설치하기 - 도도(Dodo)

 

설치가 완료되었다.
"Finish(피니시)"를 누른다.

 


3. Oracle VM VirtualBox - 화면

 

Oracle VM VirtualBox 화면이다. 간단한 구조로 생겼다.

 

 

3-1. Oracle VM VirtualBox - 도도(Dodo)

 

 

 

3-2. Oracle VM VirtualBox - 도도(Dodo)

 


4. 맺음글(Conclusion)

 

Oracle VM VirtualBox에 대해서 살펴보았다.

 


5. 참고자료(Reference)

1. Oracle VM VirtualBox, Last Modified, Accessed by 2018-09-01, https://www.virtualbox.org/

2. Downloads - Oracle VM VirtualBox, Last Modified, Accessed by 2018-09-01, https://www.virtualbox.org/wiki/Downloads

3. trunk in vbox - Oracle VM VirtualBox, Last Modified, Accessed by 2018-09-01, https://www.virtualbox.org/browser/vbox/trunk

반응형
728x90
300x250

[PC활용] Oracle - OpenJDK (GNU/GPLv2)

 

자바를 구동하기 위한 OpenJDK 설치에 대해서 소개하려고 한다.

2006년도에 자바는 사실상 오픈소스로 전환하였다.

 

다만, SE라고 불리는 클라이언트를 통해서 사용할 경우에는 개발사가 비용을 부담해야 한다.

OpenJDK 등으로 사용할 경우에는 비용을 부담하지 않아도 된다.

 


1. Java SE에 대한 것 

 

오라클의 가격 정책을 참고하면 도움이 된다.

https://www.oracle.com/kr/corporate/pricing/index.html

 


2. OpenJDK

 

OpenJDK는 GPLv2를 적용받는다.

배포할 때 OpenJDK로 프로젝트를 적용하여 배포할 경우에는 비용을 부담하지 않아도 된다.

 

Java Development Kit로 배포할 경우에는 비용을 부담해야 한다.

단, 개인이나 학습자에게는 크게 해당되지 않는다.

 

http://openjdk.java.net에 접속하면 이러한 내용에 대해서 살펴볼 수 있다.

 

 

그림 2-1. OpenJDK License - 도도(Dodo)

 

 

그림 2-2. OpenJDK jdk.java.net - 도도(Dodo)

 


3. OpenJDK - Download & Extract

 

JDK 10(OpenJDK 10)을 다운받으려면 아래의 사이트에 접속하면 된다.

http://jdk.java.net/10

 

그림 3-1. OpenJDK - 도도(Dodo)

 

 

 그림 3-2. Java Development Kits, 도도(Dodo)

 

 그림 3-3. Java Development Kits, 도도(Dodo)

 

 그림 3-4. Open Java Development Kits, 도도(Dodo)

 

 그림 3-5. Open Java Development Kits, 도도(Dodo)

 

OpenJDK에 접속하면, 소스코드 등이 있다.

 


4. OpenJDK SE 10

 

OpenJDK와 마찬가지로 Java SE10(OpenJDK SE10)도 배포하고 있다.

OpenJDK SE10는 따로 설치하는 것은 아니고, OpenJDK를 사용하면 된다.

 


5. Eclipse Jee-photon에서 OpenJDK 사용하기(윈도우)

 

크게 어렵진 않다.

수동 조작으로 Program Files 내에 폴더를 하나 생성한다.

 

번호

기능

폴더명

1

폴더->생성하기

OpenJDK

 

그리고 그 아래의 폴더에 아래처럼 압축을 풀어주도록 한다.

 

 

 

그림 5-1. OpenJDK, OpenJDK 10.0.2 - 도도(Dodo)

 

컴퓨터의 속성에 들어간다.

 

내 컴퓨터 -> 오른쪽 버튼 -> 속성 -> 시스템

 

고급 시스템 설정을 클릭한다.

 

 

 

그림 5-2. 제어판의 시스템 - 도도(Dodo)

 

그림 5-3처럼 고급 탭을 클릭한다. 그리고 환경 변수(N)을 클릭한다.

 

 

그림 5-3. 고급 시스템 설정 - 도도(Dodo)

 

시스템 변수에 "새로 만들기(W)"를 클릭한다.

 

번호

변수명

1

JAVA_HOME

경로명

 

 

 

그림 5-4. 시스템 변수(S) 설정하기 - 도도(Dodo)

 


5-1. 이클립스 환경 설정 변경하기

 

아래의 그림은 Eclipse(Jee-Photon2)에 대한 환경설정을 변경하기 위한 것이다.

eclipse.ini을 클릭한다.

 

 

그림 5-1-1. Eclipse, jee photon2 - 도도(Dodo)

 

-vm 아래에 경로를 오픈JDK의 디렉토리 경로로 바꿔준다.

 

 

그림 5-1-2. Eclipse.ini - 도도(Dodo)

 

이클립스를 사용하면 된다.

 


6. 맺음말(Conclusion)

 

JDK에 대한 글을 작성하였다. 많은 도움이 되었으면 한다.

OpenJDK의 특징은 .msi 또는 .exe 형태로 설치하지 않는다.

 


7. 참고자료(Reference)

 

1. Global Pricing & Licensing | Oracle 대한민국, Last Modified , Accessed by 2018-08-14, https://www.oracle.com/kr/corporate/pricing/index.html

2. Price Lists | Global Pricing and Licensing | Oracle Corporation(US), Last Modified, Accessed by 2018-08-14, http://www.oracle.com/us/corporate/pricing/price-lists/index.html

3. OpenJDK:  Download and install, Last Modified , Accessed by 2018-08-14, http://openjdk.java.net/install/index.html

반응형

+ Recent posts