• MySchool题目


    题目:

    1.查询所有学生记录,包含年级名称
    2.查询S1年级下的学生记录

      一、项目目录

      二、com.myschool.dao

      2.1 BaseDao

    package com.myschool.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class BaseDao {
        /**
         * 数据库连接字符串
         */
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        private static final String URL = "jdbc:mysql://localhost:3306/myschool?useUniCode=true&characterEncoding=utf-8";
        private static final String USERNAME = "root";
        private static final String PASSWORD = "root";
    
        private Connection conn;
        private PreparedStatement statement;
        private ResultSet rs;
        /**
         * 获取连接的方法
         */
        public Connection getConnection() {
            try {
                Class.forName(DRIVER);
                //判断连接对象是否为空或者当前连接对象是否是isClosed()已经关闭的
                if(conn==null||conn.isClosed()){
                    conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
                }
                
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
    
        }
    
        /**
         * 增删改
         * 
         * @throws Exception
         */
        public int executeUpdate(String sql, Object... obj) throws Exception {
            // 获取连接
            getConnection();
            // 获取PreparedStatement对象
            
            statement = conn.prepareStatement(sql);
            // 循环加载参数
            for (int i = 1; i <= obj.length; i++) {
                statement.setObject(i, obj[i-1]);
            }
            // 执行SQL
            int count = statement.executeUpdate();
    
            return count;
        }
    
        /**
         * 查询
         * @throws SQLException 
         */
        public ResultSet executeQuery(String sql, Object... obj) throws Exception {
            // 获取连接
            getConnection();
            // 获取PreparedStatement对象
            statement = conn.prepareStatement(sql);
            // 循环加载参数
            for (int i = 1; i <= obj.length; i++) {
                
                statement.setObject(i, obj[i-1]);
            }
            rs = statement.executeQuery();
            return rs;
        }
    
        /**
         * 关闭连接
         * @throws Exception 
         */
        public void closeResource() throws Exception {
            if(rs!=null){
                rs.close();
            }
            if(statement!=null){
                statement.close();
            }
            if(conn!=null){
                //关闭连接
                conn.close();
            }
        }
    }

      2.2 IGradeDao

    package com.myschool.dao;
    
    import com.myschool.entity.Grade;
    
    public interface IGradeDao {
        /**
         * 查询年级下的所有学生信息
         * 一个年级有多名学生
         */
        public Grade getStudentByGrade(String gradeName) throws Exception;
    }

      2.3 IStudentDao

    package com.myschool.dao;
    
    import java.util.List;
    
    import com.myschool.entity.Student;
    
    public interface IStudentDao {
        /**
         * 查询所有学生信息,包含年级名称
         * 一个学生对应一个年级
         * 
         */
        public List<Student> getAllStudent() throws Exception;
        
        
    }

      三、com.myschool.dao.impl

      3.1 IGradeDaoImpl

    package com.myschool.dao.impl;
    
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.myschool.dao.BaseDao;
    import com.myschool.dao.IGradeDao;
    import com.myschool.entity.Grade;
    import com.myschool.entity.Student;
    
    public class IGradeDaoImpl extends BaseDao implements IGradeDao{
    
        @Override
        public Grade getStudentByGrade(String gradeName) throws Exception {
            Grade grade=new Grade();
            String sql="SELECT * FROM Student,Grade WHERE Student.GradeId=Grade.GradeId AND GradeName=?";
            ResultSet rs = executeQuery(sql, gradeName);
            if(rs!=null){
                
                while (rs.next()) {
                    
                    //获取年级信息
                    grade.setGradeName(rs.getString("gradeName"));
                    //获取学生信息
                    Student student=new Student();
                    student.setGradeId(rs.getInt("gradeId"));
                    student.setStudentName(rs.getString("StudentName"));
                    student.setStudentNo(rs.getInt("studentNo"));
                    //将查询出来的学生信息添加到集合当中
                    grade.getStulist().add(student);
                }
                
            }
            return grade;
        }
    
    }

      3.2 IStudentDaoImpl

    package com.myschool.dao.impl;
    
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.myschool.dao.BaseDao;
    import com.myschool.dao.IStudentDao;
    import com.myschool.entity.Grade;
    import com.myschool.entity.Student;
    
    public class IStudentDaoImpl extends BaseDao implements IStudentDao{
    
        @Override
        public List<Student> getAllStudent() throws Exception {
            List<Student> list=new ArrayList<Student>();
            String sql="SELECT * FROM Student,Grade WHERE Student.GradeId=Grade.GradeId";
            ResultSet rs = executeQuery(sql);
            if(rs!=null){
                while(rs.next()){
                    //获取学生信息
                    Student student=new Student();
                    student.setGradeId(rs.getInt("gradeId"));
                    student.setStudentName(rs.getString("StudentName"));
                    student.setStudentNo(rs.getInt("studentNo"));
                    //获取的就是当前学生的年级信息
                    Grade grade=new Grade();
                    grade.setGradeName(rs.getString("gradeName"));
                    student.setGrade(grade);
                    
                    
                    list.add(student);
                }
            }
            closeResource();
            return list;
        }
    }

      四、com.myschool.entity

      4.1 Grade

    package com.myschool.entity;
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    /**
     * Grade实体类
     * @author FLC
     *
     */
    public class Grade {
        private int gradeId;
        private String gradeName;
        private List<Student> stulist=new ArrayList<Student>();
        public List<Student> getStulist() {
            return stulist;
        }
        public void setStulist(List<Student> stulist) {
            this.stulist = stulist;
        }
        public int getGradeId() {
            return gradeId;
        }
        public void setGradeId(int gradeId) {
            this.gradeId = gradeId;
        }
        public String getGradeName() {
            return gradeName;
        }
        public void setGradeName(String gradeName) {
            this.gradeName = gradeName;
        }
        public Grade(int gradeId, String gradeName) {
            this.gradeId = gradeId;
            this.gradeName = gradeName;
        }
        public Grade() {
            
        }
    }

      4.2 Student

    package com.myschool.entity;
    /**
     * Student实体类
     * @author FLC
     *
     */
    public class Student {
        private int studentNo;
        private String studentName;
        private int gradeId;
    
        
        //只要拿到学生就能拿到对应学生的年级信息
        private Grade grade;
        
        public Grade getGrade() {
            return grade;
        }
        public void setGrade(Grade grade) {
            this.grade = grade;
        }
        public int getStudentNo() {
            return studentNo;
        }
        public void setStudentNo(int studentNo) {
            this.studentNo = studentNo;
        }
        public String getStudentName() {
            return studentName;
        }
        public void setStudentName(String studentName) {
            this.studentName = studentName;
        }
        public int getGradeId() {
            return gradeId;
        }
        public void setGradeId(int gradeId) {
            this.gradeId = gradeId;
        }
        public Student(int studentNo, String studentName, int gradeId) {
            this.studentNo = studentNo;
            this.studentName = studentName;
            this.gradeId = gradeId;
        }
        public Student() {
            
        }
        
    }

      五、com.myschool.service

      5.1 IGradeService

    package com.myschool.service;
    
    import com.myschool.entity.Grade;
    
    public interface IGradeService {
        /**
         * 查询年级下的所有学生信息
         * 一个年级有多名学生
         */
        public Grade getStudentByGrade(String gradeName) throws Exception;
    }

      5.2 IStudentService

    package com.myschool.service;
    
    import java.util.List;
    
    import com.myschool.entity.Student;
    
    public interface IStudentService {
        /**
         * 查询所有学生信息,包含年级名称
         * 
         * 
         */
        public List<Student> getAllStudent() throws Exception;
    }

      六、com.myschool.service.impl

      6.1 IGradeServiceImpl

    package com.myschool.service.impl;
    
    import com.myschool.dao.IGradeDao;
    import com.myschool.dao.impl.IGradeDaoImpl;
    import com.myschool.entity.Grade;
    import com.myschool.service.IGradeService;
    
    public class IGradeServiceImpl implements IGradeService{
        
        IGradeDao gradeDao=new IGradeDaoImpl();
    
        @Override
        public Grade getStudentByGrade(String gradeName) throws Exception {
            // TODO Auto-generated method stub
            return gradeDao.getStudentByGrade(gradeName);
        }
    
    }

      6.2 IStudentServiceImpl

    package com.myschool.service.impl;
    
    import java.util.List;
    
    import com.myschool.dao.IStudentDao;
    import com.myschool.dao.impl.IStudentDaoImpl;
    import com.myschool.entity.Student;
    import com.myschool.service.IStudentService;
    
    public class IStudentServiceImpl implements IStudentService{
        //创建Dao层对象
        IStudentDao studentDao=new IStudentDaoImpl();
        
        
        @Override
        public List<Student> getAllStudent() throws Exception {
            return studentDao.getAllStudent();
        }
    
    }

      七、com.myschool.ui

      7.1 MyMian

    package com.myschool.ui;
    
    import java.util.List;
    
    import com.myschool.entity.Grade;
    import com.myschool.entity.Student;
    import com.myschool.service.IGradeService;
    import com.myschool.service.IStudentService;
    import com.myschool.service.impl.IGradeServiceImpl;
    import com.myschool.service.impl.IStudentServiceImpl;
    
    public class MyMian {
        //创建Service对象
        static IStudentService studentService=new IStudentServiceImpl();
        static IGradeService gradeService=new IGradeServiceImpl();
        public static void main(String[] args) throws Exception {
            /*System.out.println("============查询所有学生信息============");
            List<Student> allStudent = studentService.getAllStudent();
            for (Student student : allStudent) {
                System.out.println("学生姓名:"+student.getStudentName()+"	学生年级:"+student.getGradeId()+"	年级名称:"+student.getGrade().getGradeName());
                
            }*/
            Grade grade = gradeService.getStudentByGrade("S1");
            for (Student stu : grade.getStulist()) {
                System.out.println(stu.getStudentName());
            }
        }
    }
  • 相关阅读:
    【Java学习笔记十二】——初窥多线程
    【Java】使用swing实现简易计算器
    【Java学习技巧分享】——IDEA快捷键(超全!!!)
    【Java学习笔记九】——I/O流之字符流与数据流
    【Java学习笔记八】——I/O流之InputStream和OutputStream
    算法导论15章答案
    算法导论32章答案
    右击任务栏应用图标不显示菜单后的无奈美化
    verilog
    进制表示以及转换
  • 原文地址:https://www.cnblogs.com/Zzzzn/p/10944113.html
Copyright © 2020-2023  润新知