在映射文件中 resultMap 标签加上 autoMapping 属性之前无法获取从表中的值,
加入autoMapping之后注释掉
<result property="userId" column="user_id" >pojo类与字段不对应的userId仍然会自动获取到user_id值
另外,如果注释掉
<id property="id" column="id"/>List集合中只能获取到一个对象,原本能够获取3个对象
OrdersMapper.xml
<resultMap id="order" type="cn.itheima.mybatis.pojo.orders" autoMapping="true"> <id property="id" column="id"/> <result property="createtime" column="createtime"/> <result property="note" column="note"/> <result property="number" column="number"/> <result property="userId" column="user_id"/> <association property="user" javaType="cn.itheima.mybatis.pojo.User"> <result property="username" column="username"/> <result property="address" column="address"/> </association> </resultMap> <select id="query" resultMap="order"> SELECT o.number,o.createtime, o.note,u.username, u.address left JOIN `user` u ON o.user_id = u.id </select>OrdersMapper接口
public interface OrdersMapper { /** * 一对一关联查询 ,查询所有订单信息,关联查询下单用户信息。 * * @return */ List<orders> query(); }junit测试类代码
//一对一关联查询 ,查询所有订单信息,关联查询下单用户信息。 //List<User> query(); @Test public void query(){ SqlSession sqlSession = sqlSessionFactory.openSession(); OrdersMapper ordersMapper = sqlSession.getMapper(OrdersMapper.class); List<orders> list= ordersMapper.query(); for(orders order : list){ System.out.println(order); } }orders.java
public class orders { private Integer id; private Integer userId; private String number; private Date createtime; private String note; //附加对象 private User user; getter and setter.... }Mysql表信息
orders表
users表