y??~ 2020-03-01 15:46 采纳率: 0%
浏览 331

求大神解决这个大题 求大神给出答案

  1. 假定mysql数据库中已有student表,表字段有学号sNo、姓名sName、电话sTel
  2. 根据student表已经创建实体类Student:

public class Student {

private String sNo;

private String sName;

private String sTel;

public String getsNo() {

return sNo;

}

public void setsNo(String sNo) {

this.sNo= sNo;

}

public String getsName() {

return sName;

}

public void setsName(String sName) {

this.sName = sName;

}

public String getsTel() {

return sTel;

}

public void setsTel(String sTel) {

this.sTel= sTel;

}

}
3.已经创建StudentDao接口和接口实现类StudentDaoImpl.java。要求在实现类中实现根据关键字模糊查询学生的信息;实现类中已定义对象:

PreparedStatement ps;

// 查询Student表中信息(查询所有信息或以关键字为条件查询信息。参数 var为关键字)

public ArrayList  selectStudents(String var) {
    ArrayList  list = new ArrayList();//集合用来存放学生对象
String sql;//查询语句
    /*补齐代码,如果var为空 则查询student表中所有信息。否则模糊查询学号或者姓名或者电话信息。即var可能是学号或者姓名或者电话*/







    try {
        // 连接数据库
        ps = Conndb.conndb().prepareStatement(sql);
        //补齐代码给?赋值

ResultSet rs = ps.executeQuery();// 存储的是查询结果

    // 补齐代码,循环取出查询结果










    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        Conndb.close();
    }
    return list;
}
  • 写回答

1条回答

  • tomatoo_13 2023-07-25 15:37
    关注
    
    public ArrayList<Student> selectStudents(String var) {
        ArrayList<Student> list = new ArrayList<>(); // 集合用来存放学生对象
        String sql; // 查询语句
        
        if (var == null || var.isEmpty()) {
            sql = "SELECT * FROM student"; // 查询student表中所有信息
        } else {
            sql = "SELECT * FROM student WHERE sNo LIKE ? OR sName LIKE ? OR sTel LIKE ?";
        }
        
        try {
            // 连接数据库
            ps = Conndb.conndb().prepareStatement(sql);
            
            if (var != null && !var.isEmpty()) {
                // 给?赋值
                ps.setString(1, "%" + var + "%");
                ps.setString(2, "%" + var + "%");
                ps.setString(3, "%" + var + "%");
            }
            
            ResultSet rs = ps.executeQuery(); // 存储的是查询结果
            
            // 循环取出查询结果
            while (rs.next()) {
                Student student = new Student();
                student.setsNo(rs.getString("sNo"));
                student.setsName(rs.getString("sName"));
                student.setsTel(rs.getString("sTel"));
                list.add(student);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            Conndb.close();
        }
        
        return list;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题