类封装版学生管理系统,连接数据库,增删改查,拿去用,不谢。

# coding = utf-8
import sqlite3


class Student(object):

    def __init__(self, id, name, age, sex, phone):
        self.id = id
        self.name = name
        self.age = age
        self.sex = sex
        self.phone = phone


class Studentmanager(object):

    def __init__(self):

        self.db_path = 'test.db'
        self.connect = None
        self.cursor = None

    def connect_sql(self):

        self.connect = sqlite3.connect(self.db_path)
        self.cursor = self.connect.cursor()

    def close_sql(self):
        self.connect.commit()
        self.cursor.close()
        self.connect.close()

    def create_table(self):

        self.connect_sql()
        sql = "create table if not exists student (id integer primary key ,name char not null ,age int,sex char ,phone char )"
        self.cursor.execute(sql)
        self.close_sql()

    def add(self):
        id = int(input("请输入添加的学号:"))
        name = input("请输入添加的姓名:")
        age = int(input("请输入添加的年龄:"))
        sex = input("请输入添加的性别:")
        phone = input("请输入添加的手机号码:")

        stu = Student(id, name, age, sex, phone)
        self.insert_sql(stu)
        print('添加成功')

    def insert_sql(self, stu):
        self.connect_sql()
        sql = "INSERT INTO student (id,name,age,sex,phone)VALUES({},'{}',{},'{}','{}')".format(stu.id, stu.name,
                                                                                               stu.age, stu.sex,
                                                                                               stu.phone)
        self.cursor.execute(sql)
        self.close_sql()

    def update_sql(self):

        self.connect_sql()
        id = input("请输入要修改的学号:")
        sql = 'SELECT COUNT(*),id,name,age,sex,phone FROM student WHERE id={}'.format(id)
        result = self.cursor.execute(sql)
        for i in result:
            if i[0] == 0:
                print(" 您输入的学号不存在,请重新输入: ")
            else:
                name = input('*      请输入修改后的姓名({}):'.format(i[2]))
                age = input('*       请输入修改后的年龄 ({}):'.format(i[3]))
                sex = input('*       请输入修改后的性别 ({}):'.format(i[4]))
                phone = input('*     请输入修改后的号码  ({}):'.format(i[5]))

                sql = "UPDATE student SET name='{}',age={},sex='{}',phone='{}' WHERE id={}".format(name, age, sex,
                                                                                                   phone, id)
                self.cursor.execute(sql)
                self.connect.commit()

    def delete_sql(self):
        self.connect_sql()
        print('输入b根据学号删除')
        print('输入a删除所有信息')
        select = input('请输入您的选项:')

        while select != 'a' and select != 'b':
            select = input('输入不合法,请重新输入:')
        if select == 'a':
            is_del = input('是否删除所有信息?y/n:')
            if is_del == 'y':
                sql = "delete * from student"
                self.cursor.execute(sql)
                self.connect.commit()
        else:
            self.select_sql()
            while True:
                id = int(input('请输入要删除的学号:'))
                is_del = input('是否删除当前学生信息?d/l:')
                if is_del == 'd':
                    sql = "delete from student where id ={}".format(id)
                    self.cursor.execute(sql)
                    # self.connect.commit()
                    self.close_sql();
                    print('删除成功!')
                return

    def select_sql(self):
        print('行号\t\t学号\t\t姓名\t\t年龄\t\t性别\t\t电话')
        print('--------------------------------')
        self.connect_sql()
        sql = "select * from student"
        sql_list = self.cursor.execute(sql)
        a = 0
        for i in sql_list:
            a += 1
            print(a, '\t\t', i[0], '\t', i[1], '\t', i[2], '\t', i[3], '\t\t', i[4], )

    # for id,name,age,sex,phone in sql_list:
    #     print(id,'\t',name,'\t',age,'\t',sex,'\t',phone)


    def option(self):
        print("*  1添加学员")
        print("*  2修改学员")
        print("*  3删除学员")
        print("*  4查询学员")
        print("*  0退出")


    def run(self):
        self.create_table()
        while True:
            self.option()
            select = int(input('选择您的操作:'))
            if select < 0 or select > 4:
                print('输入有误 请重新输入:')

            elif select == 1:
                self.add()

            elif select == 2:
                self.update_sql()

            elif select == 3:
                self.delete_sql()

            elif select == 4:
                self.select_sql()
            else:
                print('感谢您的使用,下次再会!')
                break


if __name__ == '__main__':
    s = Studentmanager()
    s.run()

转载于:https://www.cnblogs.com/nicholas7464/p/10257491.html

好的,以下是一个简单的Java学生管理系统示例,涉及到了连接MySQL数据库增删改查操作。注意,以下示例代码仅供参考,需要根据具体情况进行修改和完善。 首先,需要创建一个学生,表示一个学生的基本信息,例如学号、姓名、年龄、性别等。 ``` public class Student { private int id; private String name; private int age; private String gender; // 构造方法和getter/setter方法省略 } ``` 然后,需要创建一个数据库连接工具,用于连接MySQL数据库,并提供一些常用的增删改查操作方法。以下示例代码使用了JDBC连接MySQL数据库。 ``` import java.sql.*; public class DBUtil { // MySQL数据库连接信息 private static final String URL = "jdbc:mysql://localhost:3306/students"; private static final String USERNAME = "root"; private static final String PASSWORD = "123456"; // 加载MySQL JDBC驱动 static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } // 获取数据库连接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USERNAME, PASSWORD); } // 关闭数据库连接 public static void close(Connection conn, Statement stmt, ResultSet rs) { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } // 增加学生信息 public static void addStudent(Student student) { Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); String sql = "INSERT INTO students (name, age, gender) VALUES (?, ?, ?)"; stmt = conn.prepareStatement(sql); stmt.setString(1, student.getName()); stmt.setInt(2, student.getAge()); stmt.setString(3, student.getGender()); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, null); } } // 删除学生信息 public static void deleteStudent(int id) { Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); String sql = "DELETE FROM students WHERE id=?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, id); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, null); } } // 更新学生信息 public static void updateStudent(Student student) { Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); String sql = "UPDATE students SET name=?, age=?, gender=? WHERE id=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, student.getName()); stmt.setInt(2, student.getAge()); stmt.setString(3, student.getGender()); stmt.setInt(4, student.getId()); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, null); } } // 查询学生信息 public static Student getStudent(int id) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; Student student = null; try { conn = getConnection(); String sql = "SELECT * FROM students WHERE id=?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, id); rs = stmt.executeQuery(); if (rs.next()) { student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setAge(rs.getInt("age")); student.setGender(rs.getString("gender")); } } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, rs); } return student; } } ``` 以上代码中,需要替换MySQL数据库的连接信息(URL、用户名和密码),以及对应的学生表格名和字段名。代码中提供了四个常用的增删改查操作方法,分别是: - 增加学生信息:使用PreparedStatement对象执行INSERT语句。 - 删除学生信息:使用PreparedStatement对象执行DELETE语句。 - 更新学生信息:使用PreparedStatement对象执行UPDATE语句。 - 查询学生信息:使用PreparedStatement对象执行SELECT语句,并将查询结果封装成一个学生对象返回。 最后,可以编写一个简单的测试程序,演示以上增删改查操作的使用。 ``` public class Test { public static void main(String[] args) { // 增加学生信息 Student student = new Student(); student.setName("张三"); student.setAge(20); student.setGender("男"); DBUtil.addStudent(student); // 查询学生信息 Student student1 = DBUtil.getStudent(1); System.out.println(student1.getName()); // 更新学生信息 student1.setName("李四"); DBUtil.updateStudent(student1); // 删除学生信息 DBUtil.deleteStudent(1); } } ``` 以上测试程序中,首先增加了一个学生信息,然后查询出该学生信息并输出,接着修改该学生姓名并更新,最后删除该学生信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值