/
DBDisplay.py
77 lines (65 loc) · 2 KB
/
DBDisplay.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import sys,os
from javax.servlet.http import HttpServlet
#sys.add_package("java.sql.DriverManager")
#sys.add_package("java.sql.DriverManager.getConnection")
#sys.add_package("org.sql.sqlite.JDBC")
from java.sql import *
from java.sql import DriverManager
from org.sqlite.JDBC import *
from JythonServletUtils import *
class DBDisplay(HttpServlet):
def __init__(self):
#define the JDBC url
db_file = '/var/lib/tomcat7/webapps/jythondemo/products.db'
url = "jdbc:sqlite:%s" % db_file
#connect to the database and get cursor object
try:
self.c = DriverManager.getConnection(url)
except Exception, e:
print("Could not find %s in %s" % (db_file, os.cwd))
def doGet(self, req, res):
print("dir() = %s" % dir())
#print("dir(self.servletContext) = %s" % dir(self.servletContext))
res.setContentType("text/html")
out = res.getWriter()
out.println('''
<html>
<head>
<title>Jylet Database Connection</title>
</head>
<body>
<table align="center">
<tr>
<td><b>ID</b></td>
<td><b>Title</b></td>
<td><b>Description</b></td>
<td><b>Price</b></td>
</tr>
''')
self.statement = self.c.createStatement();
self.resultSet = self.statement.executeQuery("select code, name, description, price from products")
while self.resultSet.next():
row = []
for col in range(1, self.resultSet.getColumnCount()+1):
name = self.resultSet.getColumnName(col)
row.append(self.resultSet.getString(name))
out.println('''
<tr>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>''' % tuple(row)
)
out.println('''
</table>
</body>
</html>
''')
def destroy(self):
self.c.close()
self.db.close()
if __name__ == "__main__":
DBD = DBDisplay()
dummyRequest = DummyHttpRequest()
dummyResponse = DummyHttpResponse()
DBD.doGet (dummyRequest,dummyResponse)