多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
一个订单属于一个用户 订单中有user_id 接口 **orders这个pojo中要有user这个类的属性,提供get和set** ~~~ // 一对一关联查询,以订单为中心关联用户 public List<Orders> selectOrders(); ~~~ 配置文件 ~~~ <!-- // 一对一关联查询,以订单为中心关联用户 public List<Orders> selectOrders(); --> <resultMap type="pojo.Orders" id="order"> <result column="id" property="id"/> <result column="user_id" property="userId"/> <result column="number" property="number"/> <!-- 一对一 --> <association property="user" javaType="pojo.User"> <id column="user_id" property="id"/> <result column="username" property="username"/> </association> </resultMap> <select id="selectOrders" resultMap="order"> SELECT o.id, o.user_id, o.number, u.username FROM orders o left join user u on o.user_id = u.id </select> ~~~ 这里使用association标签,**association用于一对一的关联查询** * property - 对象属性的名称 * javaType - 对象属性的类型 * column - 所对应的外键字段名称 * select - 使用另一个查询封装的结果 测试 ~~~ // 加载核心配置文件 String resource = "SqlMapConfig.xml"; InputStream in = Resources.getResourceAsStream(resource); // 创建SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); // 创建SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); // SqlSession帮我生成一个实现类 OrderMapper mapper = sqlSession.getMapper(OrderMapper.class); List<Orders> selectOrderList = mapper.selectOrders(); for (Orders orders : selectOrderList) { System.out.println(orders); System.out.println(orders.getUser().getUsername()); } ~~~