参照上面的示例代码,操作emp表,工号从7788-7900这四行记录, 数据要:工号,姓名,职位,薪水; 要求: 1、将每行记录变成一个类对象; 2、将每行是变成一个Map对象;
时间: 2023-06-14 09:06:14 浏览: 166
员工类(包括姓名,银行帐号,工号等)
以下是示例代码,假设emp表的结构为(empno, ename, job, sal):
```python
import pymysql
# 定义Employee类
class Employee:
def __init__(self, empno, ename, job, sal):
self.empno = empno
self.ename = ename
self.job = job
self.sal = sal
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')
# 创建游标对象
cursor = conn.cursor()
# 查询emp表中工号在7788-7900之间的记录
sql = "SELECT empno, ename, job, sal FROM emp WHERE empno BETWEEN 7788 AND 7900"
cursor.execute(sql)
# 将每行记录变成一个Employee对象并添加到列表中
employees = []
for row in cursor.fetchall():
emp = Employee(row[0], row[1], row[2], row[3])
employees.append(emp)
# 输出每个Employee对象的信息
for emp in employees:
print(emp.empno, emp.ename, emp.job, emp.sal)
# 将每行记录变成一个Map对象并添加到列表中
maps = []
for row in cursor.fetchall():
emp_map = {"empno": row[0], "ename": row[1], "job": row[2], "sal": row[3]}
maps.append(emp_map)
# 输出每个Map对象的信息
for emp_map in maps:
print(emp_map["empno"], emp_map["ename"], emp_map["job"], emp_map["sal"])
# 关闭游标和数据库连接
cursor.close()
conn.close()
```
注意,在上面的代码中,我们定义了一个Employee类来表示每个员工,并使用该类的实例来存储每行记录。同时,我们还使用了一个Map对象来存储每行记录的信息,这样可以方便地访问每个字段的值。在实际开发中,我们可以根据具体的需求来选择使用哪种方式。
阅读全文