java对象名
和 数据库表名
不同怎么办?
提问:
我想请教一下,在使用mybatis的注解的时候,如果出现java对象名和数据库表名不同的时候,如何写mapper。
比如,UserAccount
是 java对象,而 数据库表名 为user_account
回答:
不影响使用,不需要处理
Mybatis
不需要对象和数据库表名称一致,因为查询语句中包含了从哪个表查询,而查询的结果集如何映射到对象的属性可以通过resultMap
标签进行映射。
<resultMap type="com.struts.entity.User" id="UserList">
<!-- 主键 -->
<id column="userid" jdbcType="VARCHAR" property="userid" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="registDate" jdbcType="VARCHAR" property="registDate" />
<result column="password" jdbcType="VARCHAR" property="password" />
</resultMap>
上面是返回结果,将查询到的各个字段映射到对象的各个属性,而,如何将对象和数据库表映射其实没有必要,比如说,用User对象查询,而表是在sql语句中就写好的,
<insert id="insertUser" parameterType="com.struts.entity.User">
insert into user_info(userid,password,registDate,username)
values(#{userid},#{password},#{registDate},#{username})
</insert>
上面就可以将User
对象的各个属性插入到user_info
表中,而数据库表名user_info
是在sql语句中就体现好了的。