您的位置:首页 > 数据库 > MySQL

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

2017-07-12 15:10 441 查看
博主最近使用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"%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐