BeanHandler<Student>(Student.class)一直为null解决办法

BeanHandler<Student>(Student.class)

原因如下:

1.连接池工具类Druidutils是否配置正确(个人因自动补码导致有串代码错误)

2.DTO实体类中需要包含get,set方法,空的构造函数,含参构造函数和重写toString方法(没有也不影响,最好加上)

3.记得后面传参

 student = queryRunner.query(sql,new BeanHandler<Student>(Student.class),stuNum,stuPwd);

总结:

        本人就是因为连接池工具类因为自动补码给我多写了一个方法导致一直连接为null,查遍了资料也没有解决,最后突然想起来Druidutils并不是自带的类而是我自己写的类,终于找到了错误。

         此外,web注解必须正确,负责404找不到源数据

Druidutils类:


//连接池工具类
package stuInfo.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.*;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class DruidUtils {
    private static DruidDataSource druidDataSource;

    static {
        try{
            InputStream is = DruidUtils.class.getResourceAsStream("druid.properties");
            Properties properties = new Properties();
            properties.load(is);
            druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //获取数据库连接池数据源对象
    public static DataSource getDataSource(){
        return druidDataSource;
    }
    
    //从数据库连接池中获取数据库连接对象
    public static Connection getConnection(){
        Connection connection = null;
        try {
            connection = druidDataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
}

DTO实体类:

package stuInfo.dto;

/**
 * 描述:
 * 作者:小陶不慌张
 * 文件:Student
 * 日期:2023/3/2 0:31
 */
public class Student {
    private String stuNum;
    private String stuName;
    private String stuGender;
    private int stuAge;
    private String stuPwd;

    public Student() {
    }

    public Student(String stuNum, String stuName, String stuGender, int stuAge, String stuPwd) {
            this.stuNum = stuNum;
            this.stuName = stuName;
            this.stuGender = stuGender;
            this.stuAge = stuAge;
            this.stuPwd = stuPwd;
    }

    @Override
    public String toString() {
        return "Student{" +
                "stuNum='" + stuNum + '\'' +
                ", stuName='" + stuName + '\'' +
                ", stuGender='" + stuGender + '\'' +
                ", stuAge=" + stuAge +
                ", stuPwd='" + stuPwd + '\'' +
                '}';
    }
    public String getStuNum() {
        return stuNum;
    }

    public void setStuNum(String stuNum) {
        this.stuNum = stuNum;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public String getStuGender() {
        return stuGender;
    }

    public void setStuGender(String stuGender) {
        this.stuGender = stuGender;
    }

    public int getStuAge() {
        return stuAge;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public String getStuPwd() {
        return stuPwd;
    }

    public void setStuPwd(String stuPwd) {
        this.stuPwd = stuPwd;
    }


}

DAO:

package stuInfo.dao;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import stuInfo.dto.Student;
import stuInfo.utils.DruidUtils;

/**
 * 描述:根据学号密码查询学生信息
 * 作者:小陶不慌张
 * 文件:StudentDAO
 * 日期:2023/3/2 12:52
 */

public class StudentDAO {
    public Student queryStudentByNumAndPwd(String stuNum, String stuPwd){
        Student student=null;
        try{
            String sql = "select stu_num stuNum, stu_name stuName, stu_gender stuGender, stu_age stuAge, stu_pwd stuPwd from students where stu_num=? and stu_pwd=?";
            QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
            student = queryRunner.query(sql,new BeanHandler<Student>(Student.class),stuNum,stuPwd);
            System.out.println(student);
        }catch(Exception e){
            e.printStackTrace();
        }
        return student;
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陶陶乌龙茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值