안녕하세요. 언제나휴일입니다.
이번에는 Inverse 테이블과 연동하는 InverseSql 클래스를 정의합시다.
1. 사용할 라이브러리
파이썬에서 MSSQL을 사용하려면 pymssql을 포함합니다.
데이터베이스와 연결하는 부분은 미리 작성한 SqlCon을 사용할 거예요.
import pymssql from SqlCon import SqlCon
2. AddInverseItem – 역파일 요소 추가하기
제일 먼저 역파일 요소를 추가하는 메서드를 정의합시다.
class InverseSql: @staticmethod def AddInverseItem(wid,mid,rcnt): cursor = SqlCon.Cursor()
추가 쿼리 문자열을 작성합니다.
query =str.format("Insert into Inverse(wid,mid,rcnt) values ({0},{1},{2})",wid,mid,rcnt)
쿼리를 실행하고 커밋을 수행하는 것을 시도합니다.
만약 예외가 발생하면 False를 반환하고 성공하면 True를 반환합니다.
try: cursor.execute(query) SqlCon.Commit() except: return False else: return True
3. FindInv – 역파일 요소 찾기
형태소 일련 번호로 역파일 요소를 찾는 메서드를 작성합시다. 이 메서드를 통해 특정 단어를 포함하는 웹 페이지를 검색하는 것이 가능합니다.
@staticmethod def FindInv(mid):
검색 결과를 보관할 컬렉션을 생성합니다.
inv_col = list()
검색 쿼리 문자열을 작성하고 실행합니다.
inv_col = list() cursor = SqlCon.Cursor() query = str.format("Select wid,rcnt from Inverse where mid={0}",mid)
검색 결과를 컬렉션에 추가한 후 반환합니다.
row = cursor.fetchone() while row: inv_col.append(row) row = cursor.fetchone() return inv_col
4. 전체 코드
#InverseSql.py import pymssql from SqlCon import SqlCon class InverseSql: @staticmethod def AddInverseItem(wid,mid,rcnt): cursor = SqlCon.Cursor() query =str.format("Insert into Inverse(wid,mid,rcnt) values ({0},{1},{2})",wid,mid,rcnt) try: cursor.execute(query) SqlCon.Commit() except: return False else: return True @staticmethod def FindInv(mid): inv_col = list() cursor = SqlCon.Cursor() query = str.format("Select wid,rcnt from Inverse where mid={0}",mid) cursor.execute(query) row = cursor.fetchone() while row: inv_col.append(row) row = cursor.fetchone() return inv_col