MySQL数据库 使用MyBatis做持久化时 数据库命名带下划线的列获取不到

来源:互联网 发布:软件测试社区 编辑:程序博客网 时间:2024/06/08 04:49

博主最近使用SSM框架在做项目,数据库使用的mysql,建表时使用了一些下划线格式的表名,比如“user_id”这种字段。我在获取数据在前台展示时,使用EL表达式进行展示时,只有不带下划线的数据展示出来了。
下面是mybatis.xml的配置内容:

<resultMap id="BaseResultMap" type="com.net.pojo.Role" >    <id column="role_id" property="roleId" jdbcType="INTEGER" />    <result column="role_name" property="roleName" jdbcType="VARCHAR" />    <result column="description" property="description" jdbcType="VARCHAR" />    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />  </resultMap>  </select>

这是sql语句:

<select id="getRoleList" resultType="com.net.pojo.role"  >    select role_id, role_name, description, create_time    from role  </select>

前台获取数据展示:

${roleList.size()} </br >      <c:forEach var="role" items="${roleList}">    <tr><td><c:out value="${role.roleId}"/></td>        <td><c:out value="${role.roleName}"/></td>        <td><c:out value="${role.description}"/></td>        <td><c:out value="${role.createTime}"/></td>    </tr></br >    </c:forEach>   

这种情况下 就只有 description这一列 会展示出来,其余都获取不到值。
后来 把SQL语句中的 resultType 改成了resultMap=”BaseResultMap” 结果就会正常显示出来了。
这里说明一下,关于resultType和resultMap的区别可以参考:http://www.cnblogs.com/kluan/p/5934623.html

另外使用El表达式展示数据时可能会无效,此时可以在jsp页面加:

<%@ page isELIgnored="false"%>  
原创粉丝点击