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

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

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" />
  
  

这是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"%>  

你可能感兴趣的:(学习项目开发及心得)