Python jdbc 테이블
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
# -*- coding: utf-8 -*-
import os
import sys
import jaydebeapi
import jpype
import jaydebeapi as jp
import pandas.io.sql as pd_sql
from pandas import DataFrame
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def loadData(self):
jHome = jpype.getDefaultJVMPath()
# print(jHome)
#
jpype.startJVM(jHome,'-Djava.class.path=/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/ojdbc6.jar','locale=UTF-8')
conn = jp.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:cykim/clcl@sand.iptime.org:1521:orcl')
curs = conn.cursor()
sql = "select * from employees"
# self.creatingTables()
curs.execute(sql)
self.tableWidget.setRowCount(0)
self.tableWidget.insertRow(int(curs.rowcount))
row_data = curs.fetchall()
# self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem(str(row_data[1])))
# self.tableWidget = QTableWidget()
# self.tableWidget.setRowCount(5)
self.tableWidget.setColumnCount(10)
for row_number,row_data in enumerate(row_data):
print('rownumber:',row_number)
self.tableWidget.insertRow(row_number)
for column_number,data in enumerate(row_data):
print('column_number:', column_number)
print('data:', data)
self.tableWidget.setItem(row_number,column_number,QtWidgets.QTableWidgetItem(str(data)))
# for idx, sel in enumerate(row_data):
# print(idx)
# print(sel)
# for colum_number,data in enumerate(row_data):
# self.tableWidget.setItem(row_number,colum_number,QtWidgets.QTableWidgetItem(str(data)))
# print(curs.arraysize)
# print(curs.fetchall())
# self.tableWidget.setItem(curs.rowcount,curs.arraysize[0],QtWidgets.QTableWidgetItem(str(curs.fetchall())))
# curs.execute(sql)
# pd_sql.execute(sql, conn)
# df = pd_sql.read_sql(sql, conn, index_col=None)
# print(df.head())
# acc = curs.fetchall()
# print(curs.rowcount)
curs.close()
conn.close()
jpype.shutdownJVM()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(80, 30, 581, 341))
self.tableWidget.setRowCount(5)
self.tableWidget.setColumnCount(10)
self.tableWidget.setObjectName("tableWidget")
self.btn_load = QtWidgets.QPushButton(self.centralwidget)
self.btn_load.setGeometry(QtCore.QRect(310, 420, 113, 32))
self.btn_load.setObjectName("btn_load")
self.btn_load.clicked.connect(self.loadData)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.btn_load.setText(_translate("MainWindow", "PushButton"))
def creatingTables(self):
self.tableWidget = QTableWidget()
self.tableWidget.setRowCount(5)
self.tableWidget.setColumnCount(3)
self.tableWidget.setItem(0,0, QTableWidgetItem("Name"))
self.tableWidget.setItem(0,1, QTableWidgetItem("Email"))
self.tableWidget.setItem(0, 2 , QTableWidgetItem("Phone No"))
self.tableWidget.setItem(1,0, QTableWidgetItem("Parwiz"))
self.tableWidget.setItem(1,1, QTableWidgetItem("parwiz@gmail.com"))
self.tableWidget.setItem(1,2, QTableWidgetItem("845845845"))
self.tableWidget.setColumnWidth(1, 200)
self.tableWidget.setItem(2, 0, QTableWidgetItem("Ahmad"))
self.tableWidget.setItem(2, 1, QTableWidgetItem("ahmad@gmail.com"))
self.tableWidget.setItem(2, 2, QTableWidgetItem("2232324"))
self.tableWidget.setItem(3, 0, QTableWidgetItem("John"))
self.tableWidget.setItem(3, 1, QTableWidgetItem("john@gmail.com"))
self.tableWidget.setItem(3, 2, QTableWidgetItem("2236786782324"))
self.tableWidget.setItem(4, 0, QTableWidgetItem("Doe"))
self.tableWidget.setItem(4, 1, QTableWidgetItem("Doe@gmail.com"))
self.tableWidget.setItem(4, 2, QTableWidgetItem("12343445"))
self.vBoxLayout = QVBoxLayout()
self.vBoxLayout.addWidget(self.tableWidget)
self.setLayout(self.vBoxLayout)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())