mybatis为啥这次我用驼峰式命名不对

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis为啥这次我用驼峰式命名不对相关的知识,希望对你有一定的参考价值。

我的WEB项目是springmvc+mybatis的,其中mybatis里的一个xml文件的一段代码为
<select id="selByName" parameterType="java.lang.String" resultMap="userResult">
select * from user where USER_NAME=#userName
</select>
报错为Unknown column 'USER_NAME' in 'where clause' 而把USER_NAME换成username则不报错。

我记得以前都是可以用下划线的,为什么这次不能

USER_NAME应该是数据库中没有这个名字。

    这种方式 不是驼峰式命名, 你那个ID名, 才是驼峰式的命名。

    虽然数据库不区分大小 写,但是,  username 和USER_NAME是不一样的。

参考技术A 看一下你定义的userResult中有没有USER_NAME,需要对应追问

你指的是RESULTMAP吗

追答

是的

追问



对应了的

追答

那么数据库的字段名称要是USER_NAME,你检查一下是不是小写的user_name

驼峰式命名改下划线命名

import sys
import re
if __name__ == "__main__":
    # 读取第一行的n
    n = int(sys.stdin.readline().strip())
    str = []
    for i in range(n):
        # 读取每一行
        line = sys.stdin.readline().strip()
        # 匹配正则,匹配小写字母和大写字母的分界位置
        p = re.compile(r([A-Z][a-z]*))
        # 这里第二个参数使用了正则分组的后向引用
        sub = re.findall(p, line)
        print(sub)
        ret = []
        temp = ‘‘
        for index, item in enumerate(sub):
            if len(item) > 1:
                if len(temp) > 1:
                    ret.append(temp)
                    temp = ‘‘
                ret.append(item)
            else:
                temp += item
                if index == len(sub)-1:
                    ret.append(temp)
        ret = [i.lower() for i in ret]
        str.append(ret)
    for i in str:
        print(str)

 

以上是关于mybatis为啥这次我用驼峰式命名不对的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 支持属性使用驼峰的命名 返回map为啥不支持

Mybatis 开启驼峰式命名规则的映射

mybatis—当表的字段名和实体类的列名不对应时的三种处理方式

Mybatis 处理列名—字段名映射 :驼峰式命名映射

mybatis中mapUnderscoreToCamelCase的设置

MyBatis开启驼峰命名法映射作用