无法查询信息

来源:6-2 自由编程

litter_

2019-07-10 15:56:08

配置项代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.imooc.entity.Student">

    <select id="findStudents" resultMap="forStudent">
        SELECT * FROM student
        <if test="id != null">
            where id = #{id}
        </if>
        ORDER BY grade ASC
  </select>

    <resultMap id="forStudent" type="com.imooc.entity.Student">
        <id property="id" column="id"></id>
        <id property="major" column="major"></id>
        <collection property="courses" column="major" ofType="com.imooc.entity.Course" select="selectCourses"></collection>
    </resultMap>


    <select id="selectCourses" resultType="com.imooc.entity.Course">
        select * from course WHERE major_name = #{major}
    </select>


    <sql id="field_id">
        reg_no,name,age,sex,grade,major
    </sql>

    <insert id="addStudent" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO student(<include refid="field_id"></include>)
        VALUES(#{reg_no},#{name},#{age},#{sex},#{grade},#{major})
    </insert>

    <select id="searchByMajor" resultType="com.imooc.entity.Student">
        SELECT * FROM student
        <if test="major != null">
            where major = #{major}
        </if>
    </select>

    <update id="updateStudent">
        UPDATE student
        <set>
        <if test="reg_no != null">reg_no = #{reg_no},</if>
        <if test="name != null">name = #{name},</if>
        <if test="age != null">age = #{age},</if>
        <if test="sex != null">sex = #{sex},</if>
        <if test="grade != null">grade = #{grade},</if>
        <if test="major != null">major = #{major}</if>
        </set>
        <if test="grade != null">
            where grade = #{grade}
        </if>
    </update>

    <update id="update">
        UPDATE student
        <set>
            <if test="reg_no != null">reg_no = #{reg_no},</if>
            <if test="name != null">name = #{name},</if>
            <if test="age != null">age = #{age},</if>
            <if test="sex != null">sex = #{sex},</if>
            <if test="grade != null">grade = #{grade},</if>
            <if test="major != null">major = #{major}</if>
        </set>
        <if test="id != null">
            where id = #{id}
        </if>
    </update>

    <delete id="deleteStudent">
        DELETE FROM student WHERE id = #{id}
    </delete>

</mapper>

DAO层

package com.imooc.dao;

import com.imooc.entity.Student;
import com.imooc.utils.SqlSessionUtils;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class StudentDAO {
    List<Student> students;

    public List<Student> findAll(){
        SqlSession session = SqlSessionUtils.getSqlSessionFactory().openSession();

        try{
            students = session.selectList("findStudents");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (session != null){
                session.close();
            }
        }

        return students;
    }

    public Student findOne(Student student) {
        SqlSession session = SqlSessionUtils.getSqlSessionFactory().openSession();
        Student stu = new Student();
        try{
            stu = session.selectOne("findStudents",student);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (session != null){
                session.close();
            }
        }
        return stu;
    }

    public Student addStudent(Student student){
        SqlSession session = SqlSessionUtils.getSqlSessionFactory().openSession();
        try{
            session.insert("addStudent",student);
            session.commit();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
        return student;
    }

    public List<Student> searchStudentsByMajor(Student student){
        SqlSession session = SqlSessionUtils.getSqlSessionFactory().openSession();
        try{
            students = session.selectList("searchByMajor",student);
            session.commit();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
        return students;
    }

    /**
     * 修改用户的方法
     * @param studnet
     */
    public void updateStudents(Student studnet){
        SqlSession session = SqlSessionUtils.getSqlSessionFactory().openSession();
        try{
            session.update("update", studnet);
            session.commit();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
    }

    /**
     * 删除用户的方法
     * @param studnet
     */
    public void deleteStudents(Student studnet){
        SqlSession session = SqlSessionUtils.getSqlSessionFactory().openSession();
        try{
            session.delete("deleteStudent", studnet);
            session.commit();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
}


写回答

1回答

好帮手慕阿满

2019-07-10

同学你好,同学说的无法查询信息是报错还是什么呢?建议同学详细描述一下。另外同学可以在dao层中的findAll()方法中,输出一下students,查看是否查询到数据。

http://img.mukewang.com/climg/5d25cb270001456805270171.jpg

祝:学习愉快~

0

0 学习 · 8016 问题

查看课程