一、创建数据库 SQL
CREATE TABLE user (id INT, username VARCHAR(20), phone VARCHAR(20));
CREATE TABLE orderinfo (orderid INT, uid INT, goods VARCHAR(20), info VARCHAR(50));
注意:一对多查询,两个表的主键名不能一致,否则查询时,多的一方只能查出一条数据。
二、创建与数据库表对应的实体类
public class OrderInfo implements Serializable {
private int orderid;
private int uid;
private String goods;
private String info;
...
}
public class User implements Serializable {
private int id;
private String username;
private String phone;
private List<OrderInfo> orderInfoList;
...
}
三、持久层接口
List<User> findAll();
四、持久层接口映射文件
<resultMap id="userMap" type="chu.yi.bo.domain.User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="phone" property="phone"/>
<collection property="orderInfoList" ofType="chu.yi.bo.domain.OrderInfo">
<id column="orderid" property="orderid"/>
<result column="uid" property="uid"/>
<result column="goods" property="goods"/>
<result column="info" property="info"/>
</collection>
</resultMap>
<!-- 配置查询所有操作 -->
<select id="findAll" resultMap="userMap">
select u.*,o.* from user u left outer join orderinfo o on u.id = o.uid;
</select>
五、测试
List<User> users = userDao.findAll();
for(User user : users) {
System.out.println(user);
}