前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BeanPropertyRowMapper使用注意与访问权限

BeanPropertyRowMapper使用注意与访问权限

原创
作者头像
小明爱吃火锅
发布2024-05-10 11:41:51
1310
发布2024-05-10 11:41:51
举报
文章被收录于专栏:小明说Java小明说Java

前言

本博客主要对本人第一次使用spring中JdbcTemplate用queryForObject(String sql, RowMapper<> rowMapper, Object… args),获取指定对象时,在数据库字段与bean属性名对应的情况(本人做了很多次修改),获取的值还是null,很烦恼,求助网上的大神,很是没有解决,本来想放弃,但是,回到bean中,发现set get方法没有加入public方法,抱着侥幸的心理试了一下,真的出结果了。对此本人对BeanPropertyRowMapper方法进行了总结。

注意事项

BeanPropertyRowMapper是Spring JDBC模板中用于将ResultSet中的数据映射到Java Bean对象的工具类。在使用BeanPropertyRowMapper时,需要注意以下几点:

默认构造函数

确保Java Bean类具有默认构造函数(无参数构造函数)。BeanPropertyRowMapper需要使用默认构造函数来创建Java Bean实例。

代码语言:java
复制
public class User {
    private int id;
    private String name;
    public User() {
    }

}

getter和setter方法

确保Java Bean类的属性具有公共的getter和setter方法。BeanPropertyRowMapper使用Java Bean的getter和setter方法来访问属性值。

代码语言:java
复制
public class User {
    private int id;
    private String name;

    public int getId() {
        return id;

    }


    public void setId(int id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {

        this.name = name;

    }

}

数据库字段

确保数据库表中的列名与Java Bean类的属性名匹配。BeanPropertyRowMapper使用列名来查找Java Bean的属性。如果列名与属性名不匹配,您需要使用别名在SQL查询中将列名映射到属性名。

代码语言:sql
复制
SELECT id, name AS userName FROM users

一般,字段名字一样或者驼峰式与下划线式对应,属性明首字母小写,个人建议bean的属性名称按照数据库字段来写,这样能够避免映射错误。

SpringJDBC BeanPropertyRowMapper 查询的时候 一般的数据库字段都可以正常映射到 bean!

字段 –> bean属性

USER_NAME –> userName

USER_ID –> userId

这样sql查询不必转化别名,BeanPropertyRowMapper会自动匹配。

访问修饰符

如果您使用的是访问修饰符(如privateprotectedpackage-private)来限制Java Bean类的访问权限,请确保getter和setter方法具有适当的访问级别。BeanPropertyRowMapper需要访问这些方法来设置属性值。

代码语言:java
复制
public class User {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {

        this.name = name;

    }

}

本人出现的问题就是快捷键生成get set方法时,忘记加入public,导致方法为默认值,BeanPropertyRowMapper不能访问。

总结

总之,在使用BeanPropertyRowMapper时,请确保Java Bean类具有默认构造函数,属性具有公共的getter和setter方法,数据库表中的列名与Java Bean类的属性名匹配,以及getter和setter方法具有适当的访问级别。这样,您就可以使用BeanPropertyRowMapperResultSet中的数据映射到Java Bean对象了。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 注意事项
    • 默认构造函数
      • getter和setter方法
        • 数据库字段
          • 访问修饰符
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档