Mybatis:从映射的bean属性获取列的名称

发布于 2024-12-23 06:00:00 字数 604 浏览 1 评论 0原文

有什么方法可以从 bean 属性中检索列名吗?

例如,我有一个用户表

user(user_id,user_name)

和一个类

class User{
private Integer userId;
private String userName;
//getter setter
}

,我的配置文件中有一个 resultMap,

 <resultMap id="userMap" type="User">
    <id property="userId" column="user_id" javaType="Integer" jdbcType="INTEGER" />
    <result property="userName" column="user_name" javaType="String" jdbcType="VARCHAR" /> 
 </resultMap>

如果我有字符串 userId,有什么方法可以获取字符串 user_id

Is there any way I can retrieve the column name from a bean property?

For example I have a user table

user(user_id,user_name)

and a class

class User{
private Integer userId;
private String userName;
//getter setter
}

I have a resultMap in my configuration file

 <resultMap id="userMap" type="User">
    <id property="userId" column="user_id" javaType="Integer" jdbcType="INTEGER" />
    <result property="userName" column="user_name" javaType="String" jdbcType="VARCHAR" /> 
 </resultMap>

Is there any way i can get the String user_id if i have the string userId

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过度放纵 2024-12-30 06:00:00

下面的代码片段是否满足您的要求?

String propertyName = "userId";
Pattern p = Pattern.compile("([a-z0-9])([A-Z])");
Matcher m = p.matcher(propertyName);
StringBuffer sb = new StringBuffer();
while (m.find()) {
    m.appendReplacement(sb, m.group(1) + "_" + m.group(2).toLowerCase());
}
m.appendTail(sb);

Does the following code snippet satisfy your requirements?

String propertyName = "userId";
Pattern p = Pattern.compile("([a-z0-9])([A-Z])");
Matcher m = p.matcher(propertyName);
StringBuffer sb = new StringBuffer();
while (m.find()) {
    m.appendReplacement(sb, m.group(1) + "_" + m.group(2).toLowerCase());
}
m.appendTail(sb);
后知后觉 2024-12-30 06:00:00
Configuration configuration = sessionFactory.getConfiguration();
    ResultMap resultMap = configuration.getResultMap("User");
    for(ResultMapping resultMapping : resultMap.getResultMappings()) {
        System.out.println(resultMapping.getColumn() + "::"+resultMapping.getProperty());
    }

获取列属性一一映射,然后就可以得到你的属性的列名。

Configuration configuration = sessionFactory.getConfiguration();
    ResultMap resultMap = configuration.getResultMap("User");
    for(ResultMapping resultMapping : resultMap.getResultMappings()) {
        System.out.println(resultMapping.getColumn() + "::"+resultMapping.getProperty());
    }

get column-property mapping one by one, and then can get the column name of your property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文