解决属性名和字段名不一致的问题
当实体类中的属性与数据库中的字段名不匹配时,结果不会将数据存入实体类中
解决方法一:
select * from t_user
将原来的SQL语句改成(起别名):
select id,username,password as pwd,gender,regist_time from t_user
解决方式二:
通过resultMap结果集映射:
<!-- select查询语句-->
<resultMap id="userMap" type="User">
<!-- column表示数据库中的字段,property表示实体类中的属性-->
<result column="id" property="id"/>
<result column="username" property="username"/>
<result column="password" property="pwd"/>
<result column="gender" property="gender"/>
<result column="regist_time" property="regist_time"/>
</resultMap>
<select id="selectUsers" resultMap="userMap">
select * from t_user
</select>
运行结果:
注意:对于数据库其他字段和实体类中的属性相一致时,我们可以不必进行一一映射,只需要将对应的字段和属性映射即可
<!-- select查询语句-->
<resultMap id="userMap" type="User">
<!-- column表示数据库中的字段,property表示实体类中的属性-->
<result column="password" property="pwd"/>
</resultMap>
<select id="selectUsers" resultMap="userMap">
select * from t_user
</select>
Mybatis多对一查询
使用java实现sql语句
select s.id,s.`name`,t.`name` as 授课老师 from `student` s,`teacher` t where s.tid=t.id
- 数据库设计
CREATE TABLE `teacher` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=