Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringJDBCSQL语法错误异常,选择列是否严格?_Spring_Spring Mvc_Spring Security - Fatal编程技术网

SpringJDBCSQL语法错误异常,选择列是否严格?

SpringJDBCSQL语法错误异常,选择列是否严格?,spring,spring-mvc,spring-security,Spring,Spring Mvc,Spring Security,当我尝试使用spring security通过数据库进行身份验证时,我在谷歌上搜索了几个示例,它们都类似于以下查询: <authentication-manager> <authentication-provider> <jdbc-user-service data-source-ref="dataSource" users-by-username-query=" select username,password,

当我尝试使用spring security通过数据库进行身份验证时,我在谷歌上搜索了几个示例,它们都类似于以下查询:

<authentication-manager>
   <authentication-provider>
    <jdbc-user-service data-source-ref="dataSource"

       users-by-username-query="
          select username,password, enabled 
          from users where username=?" 

       authorities-by-username-query="
          select u.username, ur.authority from users u, user_roles ur 
          where u.user_id = ur.user_id and u.username =?  " 

    />
   </authentication-provider>
</authentication-manager>

如果我像下面这样更改查询,是否有错?如果不是,为什么

<security:authentication-manager>
    <security:authentication-provider>
          <security:jdbc-user-service data-source-ref="dataSource"
                users-by-username-query="select login.name,login.passw from login where login.name=?"
          authorities-by-username-query="select login.name, login.type from login where login.name =?"/>

    </security:authentication-provider>
</security:authentication-manager>

这是一个错误的SQL异常的示例。

您可以使用别名:

users-by-username-query="select login.name username,login.passw password from login where login.name=?"
但我认为您也需要启用
。如果数据库中没有,可以在查询中将其硬编码为true