数据库管理系统(封装增删改查)java

部分一(util):将常用代码封装方法的类,

包括:注册、建立连接对象、数据库处理对象、对象销毁

部分二(DAO):封装增删改查

部分三(Test):测试

空数据库:

 

部分一代码(数据库密码打上*了):
 

import java.sql.*;

//部分一:注册、建立连接对象、数据库处理对象、对象销毁

public class Student_table_Util {
    private Connection conn = null;
    private PreparedStatement ps = null;
    //注册
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //获取连接对象
    public void createCon(){
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","***");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //获取数据库操作对象
    public PreparedStatement getPre(String sql){
        this.createCon();
        try {
            ps = conn.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return ps;
    }
    //增删改的对象销毁(无ResultSet)
    public void close(){
        if(ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    //查操作的对象销毁
    public void close(ResultSet rs){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        this.close();
    }
}

部分二代码:

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

//部分二:对表增删改查

public class Student_table_DAO {
    private Student_table_Util util = new Student_table_Util();

    //增添数据操作
    public int insert(String no,String name,String classno){
        String sql = "insert into student_table(no,name,classno) values(?,?,?)";
        PreparedStatement ps = util.getPre(sql);
        int chance = 0;
        try {
            ps.setInt(1,Integer.valueOf(no));
            ps.setString(2,name);
            ps.setInt(3,Integer.valueOf(classno));
            chance = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
           util.close();
           return chance;
        }
    }
    //删除数据操作
    public int del(String no){
        String sql = "delete from student_table where no = ?";
        PreparedStatement ps = util.getPre(sql);
        int chance = 0;
        try{
            ps.setInt(1,Integer.valueOf(no));
            chance = ps.executeUpdate();
        } catch (SQLException e){
            e.printStackTrace();
        } finally{
            util.close();
            return chance;
        }
    }
    //查找操作(全部)
    public List<Student> sel(){
        String sql = "select * from student_table";
        PreparedStatement ps = util.getPre(sql);
        List<Student> result = new ArrayList<>();
        ResultSet rs = null;
        try {
            rs = ps.executeQuery();
            while(rs.next()){
                Student student = new Student(rs.getInt("no"),rs.getString("name"),rs.getInt("classno"));
                result.add(student);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            util.close(rs);
            return result;
        }
    }
    //改
    public int Update(String no,String name,String classno){
        String sql = "update student_table set name=?,classno=? where no=?";
        PreparedStatement ps =util.getPre(sql);
        int chance = 0;
        try {
            ps.setString(1,name);
            ps.setInt(2,Integer.valueOf(classno));
            ps.setInt(3,Integer.valueOf(no));
            chance = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            util.close();
            return chance;
        }
    }
}

class Student{
    int no;
    String name;
    int classno;

    public Student(int no, String name, int classno) {
        this.no = no;
        this.name = name;
        this.classno = classno;
    }

    public Student() {
    }
}

 部分三代码:

 

import java.util.List;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Student_table_DAO std = new Student_table_DAO();
        Scanner s = new Scanner(System.in);
        while(true){
            switch(print()){
                case 1:{
                    List<Student> list = std.sel();
                    for(int i=0;i<list.size();i++){
                        System.out.println("学号:"+list.get(i).no+" 姓名:"+list.get(i).name+" 班级编号:"+list.get(i).classno);
                    }
                    break;
                }
                case 2:{
                    System.out.println("请依次输入新同学的学号,姓名,班级编号");
                    String no = s.next();
                    String name = s.next();
                    String classno = s.next();
                    int chance = std.insert(no,name,classno);
                    if(chance!=0){
                        System.out.println("添加成功");
                    }else{
                        System.out.println("添加失败");
                    }
                    break;
                }
                case 3:{
                    System.out.println("请要删除数据库中的同学的学号");
                    String no = s.next();
                    int chance = std.del(no);
                    if(chance!=0){
                        System.out.println("删除成功");
                    }else{
                        System.out.println("删除失败");
                    }
                    break;
                }
                case 5:{
                    System.out.println("请输入要修改数据的同学的学号");
                    String no = s.next();
                    System.out.println("请依次输入新的姓名和班级编号");
                    String name = s.next();
                    String classno = s.next();
                    int chance = std.Update(no,name,classno);
                    if(chance!=0){
                        System.out.println("修改成功");
                    }else{
                        System.out.println("修改失败");
                    }
                    break;
                }
                case 6:{
                    System.exit(1);
                }
            }
        }
    }
    public static int print(){
        System.out.println("******欢迎来到数据库管理系统******");
        System.out.println("1:查看数据库");
        System.out.println("2:增加数据");
        System.out.println("3:删除数据");
        System.out.println("5:改动数据");
        System.out.println("6:退出系统");
        Scanner scanner = new Scanner(System.in);
        return scanner.nextInt();
    }
}

测试截图:

增:

删:

 

改:

 

查:

 

 

 

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,以下是一个简单的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); } } ``` 以上测试程序中,首先增加了一个学生信息,然后查询出该学生信息并输出,接着修改该学生姓名并更新,最后删除该学生信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值