jdbc实现对数据的增删改查练习

数据表(Student表)

 主函数测试部分

    public static void main(String[] args) throws ParseException {
        //数据插入
//        Student student = new Student("s2000","jdbc","123456","男","110","西安",new Date(),"jdbc@126.com",1);
//        saveStu(student);
        //数据删除
//        deleteStu("4");
        //查询所有数据
//        List<Student> all = getAll();
//        for (Student student : all){
//            System.out.println(student);
//        }
        //输入指定studentno查找学生信息
        System.out.println(findOne("s2000"));
    }

主体部分:

1:辅助方法(根据输入的stuentno查找记录返回找到的记录个数)

 //(辅助方法)通过id查询是否存在该学生(若返回1,存在,否则不存在)
    private  static  int getResultCountByStuid(String id){
        int count = -1;
        JDBCUtils jdbcUtils = new JDBCUtils();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            connection = jdbcUtils.getConnection();
            preparedStatement = connection.prepareStatement("select count(1) from student where StudentNo = ?");
            preparedStatement.setString(1,id);
           resultSet =  preparedStatement.executeQuery();
           while (resultSet.next()){
               count = resultSet.getInt(1);
           }
        }catch (Exception e){
            e.printStackTrace();
        }
        return count;
    }

2:数据插入

代码段:

 //数据插入
    public  static  void saveStu(Student student){
        String sql="insert into student values(?,?,?,?,?,?,?,?,?)";
        JDBCUtils jdbcUtils = new JDBCUtils();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
           connection =   jdbcUtils.getConnection();
           preparedStatement =  connection.prepareStatement(sql);
           preparedStatement.setString(1,student.getStudentno());
           preparedStatement.setString(2,student.getStudentname());
           preparedStatement.setString(3,student.getLoginpassword());
           preparedStatement.setString(4,student.getSex());
            preparedStatement.setInt(5,student.getGradeid());
           preparedStatement.setString(6,student.getPhone());
           preparedStatement.setString(7,student.getAddress());
           preparedStatement.setDate(8,new java.sql.Date(student.getBorn().getTime()));
           preparedStatement.setString(9,student.getEmail());

           int rows = preparedStatement.executeUpdate();
            System.out.println(rows);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jdbcUtils.close(connection,preparedStatement,null);
        }
    }

测试效果:

输出数字为1,表示影响一行结果。

 这里看到表中成功添加学号为s2000的记录。

3:数据删除

代码段:

//数据删除
    public  static  void deleteStu(String id){
        JDBCUtils jdbcUtils = new JDBCUtils();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            if(getResultCountByStuid(id) == 1) {
                connection = jdbcUtils.getConnection();
                preparedStatement = connection.prepareStatement("delete from student where StudentNo = ?");
                preparedStatement.setString(1,id);
                int rows = preparedStatement.executeUpdate();
                if(rows == 1){
                    System.out.println("删除成功!");
                }else {
                    System.out.println("删除失败!");
                }
            }else {
                System.out.println("查无此人!!!!");
            }
        }catch (Exception e){
            e.printStackTrace();
        }

    }

测试效果:

表中没有studentno为1的,所以显示查无此人

 改变方法参数id为4,表中有studentno为4的,显示删除成功; 

数据表中studentno为4的已经删除成功。 

 4:查找所有学生信息

代码段:

//获取所有学生信息
    public static List<Student>  getAll(){
        JDBCUtils jdbcUtils = new JDBCUtils();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        List<Student> list = new ArrayList<>();
        try {
            connection = jdbcUtils.getConnection();
            preparedStatement = connection.prepareStatement( "select * from student ");
            resultSet =  preparedStatement.executeQuery();
            while (resultSet.next()){
               String sno = resultSet.getString("StudentNo");
               String sadd = resultSet.getString("Address");
               String spwd = resultSet.getString("LoginPwd");
               String sname = resultSet.getString("StudentName");
               String ssex = resultSet.getString("Sex");
               String sphone = resultSet.getString("Phone");
               int id = resultSet.getInt("GradeId");
               Date sdata = resultSet.getDate("BornDate");
               String semail = resultSet.getString("Email");
                Student student = new Student(sno,sname,spwd,ssex,sphone,sadd,sdata,semail,id);
               list.add(student);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jdbcUtils.close(connection,preparedStatement,null);
        }
        return list;
    }

测试结果:

输出表中所有学生信息

4:根据指定studentno查找该学生信息

代码段:

 //根据指定id查找学生信息
    public  static  Student findOne(String id){
     Student student = null;
        JDBCUtils jdbcUtils = new JDBCUtils();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            connection = jdbcUtils.getConnection();
            preparedStatement = connection.prepareStatement( "select * from student where studentno=?");
            preparedStatement.setString(1,id);
            resultSet =  preparedStatement.executeQuery();
            while (resultSet.next()){
                String sno = resultSet.getString("StudentNo");
                String sadd = resultSet.getString("Address");
                String spwd = resultSet.getString("LoginPwd");
                String sname = resultSet.getString("StudentName");
                String ssex = resultSet.getString("Sex");
                String sphone = resultSet.getString("Phone");
                int Gid = resultSet.getInt("GradeId");
                Date sdata = resultSet.getDate("BornDate");
                String semail = resultSet.getString("Email");
                student = new Student(sno,sname,spwd,ssex,sphone,sadd,sdata,semail,Gid);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jdbcUtils.close(connection,preparedStatement,null);
        }
      return student;
    }

 测试结果:

输出指定学号学生信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗着,享受着

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值