https://docs.google.com/presentation/d/1QBe6IDe56kxlSpswBgTpqCj7Bm-rnr4aG_TNfA67TeM/edit?usp=drivesdk
학생들 로 하여금 자바를 이용해서 PC 애플리케이션을 개발하다고 샘플을 코딩해 보았다.
2학년들이라 쉽지 않지만 그래도 학생들이 잘 따라한다.

Posted by 세상을 살아가는 사람
,

python mysql 연동

Python 2023. 1. 17. 16:48

Python에서 MySQL 데이터베이스를 사용하는 방법을 적어본다.

- 환경

  + Python 3.9.10

  + MySQL : 8.0.29

  + anaconda3에서 pymysql 모듈 설치

- idle에서 파일 작성하여 run module 실행하면 pymysql 모듈이 없다고 동작하지 않음

- cmd 창에서 python Code13-02.py 입력하여 실행하면 정상 동작

[테이블 생성 및 데이터 초기화]

테이블 생성을 위해 사용한 SQL문은 아래와 같다.

create table userTable (
	id varchar(10),
    userName varchar(15),
    email varchar(20),
    birthYear int
);

insert into userTable values ('john', 'John Bann', 'john@naver.com', 1990);
insert into userTable values ('kim', 'Kim Chi', 'kim@daum.net', 1992);
insert into userTable values ('lee', 'Lee Pal', 'lee@paran.com', 1988);
insert into userTable values ('park', 'Park Su', 'park@gmail.com', 1980);

select * from userTable;

[userTable에 사용자 정보를 터미널에서 입력으로 받아 저장] : Code13-01.py

import pymysql

# 변수 선언 부분
conn, cursor = None, None
data1, data2, data3, data4 = "", "", "", ""
sql = ""

# 메인 코드 부분
conn = pymysql.connect(host='localhost', user='study', password='study', db='studydb', charset='utf8')
cursor = conn.cursor()

while (True):
    data1 = input("사용자ID ==> ")
    if data1 == "":
        break;
    data2 = input("사용자이름 ==> ")
    data3 = input("이메일 ==> ")
    data4 = input("출생년도 ==> ")
    sql = "insert into userTable values ('" + data1 + "','" + data2 + "','" + data3 + "','" + data4 + "')"
    cursor.execute(sql)
conn.commit()
conn.close()

cmd 창을 사용하여 Code13-01.py를 실행한 결과는 아래와 같다.

MySQL workbench를 사용하여 데이터를 확인하면 다음과 같이 잘 저장됨을 알 수 있다.

 

'Python' 카테고리의 다른 글

python에서 MySQL 연동하여 테이블 검색  (0) 2023.01.17
[프로그램 1] 다이어몬드 출력  (0) 2023.01.14
Posted by 세상을 살아가는 사람
,

MySQL을 사용하여 insert를 하기 위해 PrepareStatement.executeUpdate()를 하면
결과값으로 0 또는 1이 반환된다. 안드로이드에서 추가된 row id가  반환되는  것과는 다르다.
안드로이드와 같이 추가된 row id가 반환되려면 다음과 같은 작업이 고려되어야 한다.


PreparedStatement pstmt = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); ... pstmt.executeUpdate(); ResultSet keys = pstmt.getGeneratedKeys(); keys.next(); result = keys.getInt(1); // row id 값


DAO(Data Access Object) 부분에서 insert에 대한 return 값으로 result가 사용되어야 한다.

Posted by 세상을 살아가는 사람
,

몇일 전에 PC의 GPU가 동작하지 않는 것 같아 서비스 센터에 갔었다.

GPU 카드는 동작을 하는데, Windows 10 OS를 설치하여 기존에 Windows 7 OS 대비 GPU가 잘 지원하지 않는것 같다고 하였다. 그런데 HDD가 언제 날아갈지 모르겠다고 새로운 것으로 교체하는 것이 좋겠다고 하였다.

아들이 몇일전에 HDD가 생겨서 팔아야 된다고 하길래, 내가 사겠다고 하였다.

그런데 그것을 새로 설치하기 위해서 PC가 ROM bios 모드로 진입을 해야 하는데, 안되는 것이다.

그래서 오늘은 서비스 센터에 다시 갔다.

그랬더니 ROM bios로 잘 들어가는 것이다. 아니 내가 할 때는 왜 안되고...

하여튼,... 그래서 이전에 사용하던 Windows 10 OS를 사용하지 않고 다시 Windows 7 OS를 설치하고 다시 세로운 기분으로 컴퓨터를 정리하고 있다.


1. Windows 7 OS 설치

2. RC530 S65S 드라이버 설치

  - 우선 LAN이 되지 않아 다른 컴퓨터에서 LAN 드라이버를 다운로드 받아 USB로 옮겨서 설치를 하였다.

3. 그 밖에 다른 드라이버를 설치 하였다.

  - Chipset

  - WLAN

  - Sound

  - TouchPad

  - Intel VGA 그래픽 카드 드라이버

  - NVDIA External VGA 드라이버

  - HECI

  - Intel Rapid Storage

4. Windows Update 수행

5.  HDD 파티션 (1TB -> 930GB)

  - C: Windows 7 OS 용으로 244GB

  - D: 345GB

  - K: 341GB

6. JDK 8 설치 : JDK1.8.0_121

  - JAVA_HOME 설정

7. Eclipse Java EE (Neon version) 설치

  - workspace 설정

  - Windows>Preferences에서 한글 처리를 위해 encoding을 UTF-8로 설정

    + GEneral>Workspace>Text file encoding 변경 : Default (MS949) -> Other UTF-8 선택 후 Apply 버튼

    + Web>CSS Files에서 encoding 변경 : Korean, EUC-KR -> ISO 10646/Unicode(UTF-8)

    + Web>HTML Files에서 encoding 변경 : Korean, EUC-KR -> ISO 10646/Unicode(UTF-8)

    + Web>JSP Files에서 encoding 변경 : Korean, EUC-KR -> ISO 10646/Unicode(UTF-8)

    + General>Editors>Text Editors>Spelling>Encoding 변경 : Other MS949 -> Default (UTF-8)

8. TOMCAT 설치 : 기존에 사용하던 것을 복사

  - apache-tomcat-8.0.39

  - apache-tomcat-7.0.47

  - 환경변수 CATALINA_HOME 설정

    + Tomcat을 설치한 디렉토리를 CATALINA_HOME으로 지정

    + PATH에 %CATALINA_HOME%\bin 추가

9. MySQL community Server 설치

  - https://dev.mysql.com/downloads/mysql/ 사이트에서 MySQL Community Server 5.7.17 Windows (x86, 32-bit), MSI Installer를 다운로드

  - Microsoft .NET Framework 4 Client Profile (Web Installer) 다운로드및 설치

    (http://www.microsoft.com/en-us/download/details.aspx?id=17113)

  - Windows Update : Microsoft .NET Framework 설치 후, windows update를 하라고 해서...

  - Windows 7 OS를 처음 설치했더니, Windows Update가 계속되는군요.

  - mysql-installer-web-community-5.7.17.0.msi 실행

    + Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.30501 설치 (installer가 요구)

    + MySQL Server 5.7.17 설치

    + MySQL Workbench 6.3.8 설치

    + Connector/J5.1.40 설치

    + MySQL Documentation 5.7.17 설치 (O)

    + root user에 대한 비밀번호 설정

  - MySQLWorkbench로 MySQL Server가 실행되고 있는지 확인

10. Eclipse 구동

  - 기존에 수행했던 프로젝트를 import

  - 프로젝트의 Properties에서 Java Build Path를 확인

    + JDK 8의 경로를 확인 : Installed JREs의 경로를 삭제 후 설치한 JDK를 새로 추가해 준다.

    + Server 창에서 No Servers are available. Click this link to create a new server...를 클릭

    + Apache>Tomcat v8.0 Server에서 8.에서 설치한 apache-tomcat-8.0.39의 경로를 지정

    + JRE에 설치한 JDK 8의 경로를 지정해 준다.

    + Servers가 생성된다.

    + 프로젝트의 Properties로 가서 Java Build Path>Libraries를 다시 확인

    + 오류가 나는 곳을 수정(해결) : 구글링으로 (아마 환경이 달라져서 생기는 오류)

11. MySQL 설정

  - MYSQL_HOME 설정

    + 환경변수로 MYSQL_HOME을 설치한 MYSQL 경로를 지정해 준다.

    + 환경변수 PATH에 %MYSQL_HOME%\bin을 추가해 준다.

  - 한글 설정 : https://manli000.wordpress.com/2015/02/08/mysql-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90-%EC%9E%91%EC%84%B1%EC%A4%91/ 참고

    + C:\Users\user> mysql -u root -p

    + mysql> status 명령어로 latin1으로 설정된 characterset을 확인

    + mysql> show variables like 'c%';로 역시 확인 가능

    + MySQL이 설치된 디렉토리에 있는 y-default.ini 파일을 다음과 같이 수정하고, my.ini로 파일명을 저장

...

[mysqld]

character-set-client-handshake = FALSE  

init_connect = "SET collation_connection = utf8_general_ci"  

init_connect = "SET NAMES utf8"  

character-set-server = utf8  

collation-server = utf8_general_ci  


[mysql]   

default-character-set=utf8


[client]    

default-character-set = utf8  


[mysqldump]    

default-character-set = utf8


    + MySQL이 설치된 디렉토리의 bin 디렉토리에 복사 : 관리자 권한 승인

    + MySQL 서버 재기동 : 제어판>시스템 및 보안>관리 도구>서비스>MySQL57 서비스 다시 시작

    + mysql> status나 mysql> show variables like 'c%';로 변경 확인


  - 데이터베이스, user, Table 등 생성 및 데이터 초기화 수행

  - C:\Users\User> mysqladmin create -u root -p database 명령어로 데이터베이스 talanton을 생성

  - C:\Users\User> mysql -u root -p 명령어로 mysql에 접속

  - mysql> create user 'username'@'localhost' identified by 'password';로 사용자 추가

  - mysql> create user 'username'@'%' identified by 'password';로 사용자 추가

  - mysql> grant all privileges on *.* to 'username'@'localhost' identified by 'password';

  - mysql> grant all privileges on *.* to 'username'@'%' identified by 'password';

  - mysql> use mysql;로 데이터베이스 변경

  - mysql> select * from user;로 사용자에 대한 데이터베이스 접근 권한이 변경됨을 확인


  - Data Source Explorer 창에서 새로운 Database Connections 추가

    + Database Connections에서 오른쪽 마우스 클릭 후 New 선택

    + MySQL선택 후 Name란에서 적당한 이름 지정 후 Next 버튼 클릭

    + MySQL JDBC Driver로 MySQL Connector로 설치한 드라이버 jar 파일 등록

      (C:\Program Files (x86)\MySQL\Connector.J 5.1\mysql-connector-java-5.1.40-bin.jar)

    + General 정보 추가 : Database, URL, User name, Password (위에서 생성한 데이터베이스 및 사용자)

    + Test Connection 버튼을 눌러 MySQL 서버의 데이터베이스와 통신이 되는지 확인

    + Finish 버튼을 누르면 데이터베이스 접속할 Connection이 생성됨

    + 선택 후 2번 클릭하면 데이터베이스에 접속을 하게됨.

    + 이후 데이터베이스 테이블 생성 및 데이터 초기화 수행 (sql 문장을 통해)

      (예, raspberry_mysql_initial.sql)


12. Eclipse에서 Tomcat 서버 구동

  - OK. 우선 web은 성공적으로 동작...


그 밖에 필요한 소프트웨어를 설치한다.

- Microsoft Office : 문서 작성 도구

- Photoshop CS 4 : 디자인 파일 작성

- 휴대폰 USB 드라이버 설치 : 앱 개발

- Android Studio 2.2.3 설치 : 안드로이드 앱 개발

- 아래한글 : 문서작성 (국내 환경에서 사용)

- Openssl : 안드로이드 휴대폰 개발 시, hash key 생성

- Sqlite DB Browser : 안드로이드 앱에서 사용하는 데이터베이스 파일을 볼 수 있도록 하는 도구

  + http://sqlitebrowser.org/ 에서 자신의 컴퓨터에 맞는 버전을 다운로드하고 설치하여 사용



Posted by 세상을 살아가는 사람
,

IoT 글 목록

IoT 2017. 1. 23. 17:46

이 글은 IoT 게시판에 실린 글의 목록을 적어 본 것이다.


1. 라즈베리에 라즈비안 os 설치 : http://talanton.tistory.com/29

2. 라즈베리파이2에 JDK 8 설치 : http://talanton.tistory.com/19

3. 라즈베리파이2에 MySQL 설치 : http://talanton.tistory.com/9

4. 라즈베리파이2에 TOMCAT 8 설치 : http://talanton.tistory.com/20

5. 라즈베리파이2에 TOMCAT 7 설치 : http://talanton.tistory.com/8

6. 라즈베리파에 안드로이드 연결하기 : http://talanton.tistory.com/25

7. 라즈베리파이에 내장된 스크래치로 GPIO 제어 : http://talanton.tistory.com/24

8. 라즈베리파이로 GPIO 제어 (WebIOPi 사용) : http://talanton.tistory.com/23

9. 라즈베리파이에서 pyFirmata를 사용하여 아두이노 제어하기 : http://talanton.tistory.com/22

10. 라즈베리파이에 라즈비안 OS 설치 : http://talanton.tistory.com/29

11. 라즈베리파이 고정 IP address 할당 방법 : http://talanton.tistory.com/43

12. 라즈베리파이에 라즈비안 OS 설치 : http://talanton.tistory.com/44

Posted by 세상을 살아가는 사람
,
라즈베리파이에 서버로 동작을 시키기 위해서는 데이터베이스가 필수적이다. 이를 위해 MYSQL을 설치해 본다.

예전에 라즈베리파이2에 XE를 설치하였는데, 그 절차 중에 MYSQL을 설치하는 부분만을 이용하면 된다.

참고 : http://elradiun.tistory.com/1

       http://funnylog.kr/561


주의할 사항은 default-character-set=utf8이 client와 mysqld에 중복되게 기술되어 오류가 있다는 것이다.

mysqld에 있는 것을 삭제해 준다.



Posted by 세상을 살아가는 사람
,