상세 컨텐츠

본문 제목

파이썬 MySQL 연동해서 시험보기2

MySQL

by 주초위왕 2023. 4. 2. 23:48

본문

import MySQLdb​
!pip install mysqlclient
class DTOA:
    def __init__(self, number, name, gender, age, hp):
        self.number = number
        self.name = name
        self.gender = gender
        self.age = age
        self.hp = hp
    
    def setNumber(self, number):
        self.number = number
    
    def getNumber(self):
        return self.number

    def setName(self, name):
        self.name = name
    
    def getName(self):
        return self.name

    def setGender(self, gender):
        self.gender = gender
    
    def getGender(self):
        return self.gender
   
    def setAge(self, age):
        self.age = age
    
    def getAge(self):
        return self.age
    
    def setHp(self, hp):
        self.hp = hp
    
    def getHp(self):
        return self.hp
import MySQLdb

class DAO:
    def __init__(self):
        self.db = None
    #처리시 연결담당
    def connect(self):
        self.db = MySQLdb.connect('localhost', 'root', '1234', 'ecommerce')
    #처리후 연결끊기    
    def disconnect(self):
        self.db.close()
    
    
    # student data를 입력한다.
    def insert(self, it):
        self.connect()
        cur = self.db.cursor()
        sql = "insert into STUDENT (number, name, gender, age, hp) values(%s,%s,%s,%s,%s)"
        data = (it.getNumber(), it.getName(), it.getGender(), it.getAge(),it.getHp())
        cur.execute(sql, data)
        self.db.commit()
        self.disconnect()
        
        
    def selectAll(self):
        self.connect()
        cur = self.db.cursor()
        sql = 'select number, name, gender, age, hp from STUDENT'
        cur.execute(sql)
        row = cur.fetchall()
        self.disconnect()
        return row
    
    
    def search(self, number):
        self.connect()
        cur = self.db.cursor()
        sql = 'select number, name, gender, age, hp from STUDENT where number=%s'
        data = (number,)
        cur.execute(sql, data)
        row = cur.fetchone()
        self.disconnect()
        return row
    
    
    def update(self, it):
        self.connect()
        cur = self.db.cursor()
        sql = 'update STUDENT set name=%s, gender=%s, age=%s, hp=%s where number=%s'
        data = (it.getName(), it.getGender(), it.getAge(), it.getHp(), it.getNumber())
        result = cur.execute(sql, data)
        self.db.commit()
        if result > 0:
            print('수정되었습니다')
        else:
            print('해당 학생이 없습니다.')
        self.disconnect()
            
            
    def delete(self, number):
        self.connect()
        cur = self.db.cursor()
        sql = 'delete from STUDENT where number=%s'
        data = (number,)
        result = cur.execute(sql, data)
        self.db.commit()
        if result > 0:
            print('삭제되었습니다.')
        else:
            print('해당 정보가 없습니다.')
class Service:
    def __init__(self):
        self.dao = DAO()
        
        
    def insertData(self):
        print('학생 정보를 등록합니다.')
        number = input("학번을 입력하세요 : ")
        name = input("이름를 입력하세요 : ")
        gender = input("성별을 입력하세요 : ")
        age = input("나이를 입력하세요 : ")
        hp = input("연락처를 입력하세요 : ")
        print("학생이 등록 되었습니다.")
        it = DTOA(number, name, gender, age, hp)
        it = self.dao.insert(it)
        
        
    def printAll(self):
        datas = self.dao.selectAll()
        print(datas)
        
        
    def editData(self):
        number = input('수정할 사람의 학번을 입력하세요')
        it = self.dao.search(number)
        if it == None:
            print('수정할 사람을 찾지 못했습니다')
        else:
            name = input('새로운 이름을 입력하세요 :')
            gender = input('새로운 성별을 입력하세요 :')
            age = input('새로운 나이를 입력하세요 :')
            hp = input('새로운 연락처를 입력하세요 :')
            A = DTOA(number, name, gender, age, hp)
            it = self.dao.update(A)
            
            
    def delData(self):
        number = input('삭제할 학생의 학번을 입력하세요')
        self.dao.delete(number)
class Menu:
    def __init__(self):
        self.service = Service()
    
    
    def run(self):
        while True:
            try:
                print('\n학생관리 프로그램\n')
                
                menu = int(input(
                             '1.학생 정보 입력\n'
                             '2.학생 정보 출력\n'
                             '3.학생 정보 수정\n'
                             '4.학생 정보 삭제\n'))

                
                if menu == 1:
                    self.service.insertData()
                elif menu == 2:
                    self.service.printAll()
                elif menu == 3:
                    self.service.editData()
                elif menu == 4:
                    self.service.delData()
                    break
            except Exception as e:
                print(e)
                print('다시 입력하세요')
start =Menu()
start.run()
반응형

관련글 더보기

댓글 영역