首页 > 其他分享 >StudentDao

StudentDao

时间:2023-03-05 14:56:10浏览次数:51  
标签:ps String rs StudentDao sql id conn

package com.st.dao;

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

import com.st.entity.Student;
import com.st.utils.JdbcUtils;

/**

  • 在本类中,完成增删改查
    /
    public class StudentDao {
    /
    *

    • 三个常用对象
      */
      private ResultSet rs; // 查询所有返回的结果集
      private PreparedStatement ps; // 发送和执行sql语句
      private Connection conn; // 数据库发送对象

    /**

    • 通过编号添加对应学生信息

    • @param s

    • @return
      */
      public boolean addStudent(Student s) {
      String sql = "insert into student values(?,?,?)"; // ?相当于占位符
      try {
      // 1.新建数据库连接
      conn = JdbcUtils.getConnection();
      // 2.得到prepareStatement
      ps = conn.prepareStatement(sql);
      // 3.对占位符赋值
      ps.setInt(1, s.getStuid());
      ps.setString(2, s.getStuname());
      ps.setString(3, s.getStusex());

       // 4.sql语句的执行
       int n = ps.executeUpdate(); // n 表示新增数据最终成功的数据条数
       if (n > 0) {
       	return true;
       }
      

      } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } finally {
      JdbcUtils.close(null, ps, conn); // 5.资源的关闭
      }
      return false;
      }

    /**

    • 通过编号删除对应学生信息

    • @param id

    • @return
      */
      public boolean delStudent(int id) {
      String sql = "delete from student where id=?";
      try {
      conn = JdbcUtils.getConnection();
      ps = conn.prepareStatement(sql);
      ps.setInt(1, id);
      int n = ps.executeUpdate();
      if (n > 0) {
      return true;
      }

      } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } finally {
      JdbcUtils.close(null, ps, conn);
      }

      return false;
      }

    /**

    • 通过编号修改学生的姓名和性别

    • @param id

    • @param name

    • @param sex

    • @return
      */
      public boolean updateStudent(int id, String name, String sex) {
      String sql = "update student set name=?,sex=? where id=?";
      try {
      conn = JdbcUtils.getConnection();
      ps = conn.prepareStatement(sql);
      // 占位符设置
      ps.setString(1, name);
      ps.setString(2, sex);
      ps.setInt(3, id);
      int n = ps.executeUpdate();
      if (n > 0) {
      return true;
      }
      } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } finally {
      JdbcUtils.close(null, ps, conn);
      }

      return false;
      }

    public ArrayList getAllStudent() {
    String sql = "select * from student";
    ArrayList aList = new ArrayList<>();
    try {
    conn = JdbcUtils.getConnection();
    ps = conn.prepareStatement(sql);
    rs = ps.executeQuery(); // 查询的执行结果,此时全查询是一个结果集,里面包含很多个学生对象
    while (rs.next()) {
    int id = rs.getInt(1); // 取出学生的id
    String name = rs.getString(2); // name
    String sex = rs.getString(3); // sex
    aList.add(new Student(id, name, sex));// 将取出的学生的属性创建为对象后存放到集合中
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    JdbcUtils.close(rs, ps, conn);
    }

     return aList;
    

    }

    /**

    • 条件查询
      */

    public ArrayList getAllStudentSex(String sex) {
    String sql = "select * from student where sex=?";
    ArrayList aList = new ArrayList<>();
    try {
    conn = JdbcUtils.getConnection();
    ps = conn.prepareStatement(sql);
    ps.setString(1, sex); // 占位符设置
    rs = ps.executeQuery();
    while (rs.next()) {
    int id = rs.getInt(1); // 取出学生的id
    String name = rs.getString(2); // name
    String s = rs.getString(3); // s
    aList.add(new Student(id, name, s)); // 将取出的学生的属性创建为对象后存放到集合中
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    JdbcUtils.close(rs, ps, conn);
    }
    return aList;

    }
    }

标签:ps,String,rs,StudentDao,sql,id,conn
From: https://www.cnblogs.com/Breeze-lele/p/17180562.html

相关文章