1、首先mybatis.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties"/>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<typeAliases>
<!--类型的别名 理解: 将xml中 type属性指定的类型 全部更换为 user -->
<!--<typeAlias type="com.qfedu.pojo.User" alias="user"/>-->
<!--表示将 这个包下的所有的类;一旦返回的类型在这个包下,这全部都可以用类名进行简写(大写和小写都可以)-->
<package name="com.qfedu.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${pass}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/qfedu/mapper/UserMapper.xml"/>
<mapper resource="com/qfedu/mapper/OrderMapper.xml"/>
<mapper resource="com/qfedu/mapper/DetailMapper.xml"/>
<mapper resource="com/qfedu/mapper/ProductMapper.xml"/>
<mapper resource="com/qfedu/mapper/TypeMapper.xml"/>
<mapper resource="com/qfedu/mapper/UserTestMapper.xml"/>
</mappers>
</configuration>
2、分别定义数据表中的各个对象,并且编写其属性,要重写tostring()方法,代码,略
3、从用户的角度开始进行配置xml文件,首先一个用户可以查看自己的多个订单,所以在定义user类时,也要定义一个list属性进行存储我们的order
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.pojo.Mapper">
<select id="getUser" resultMap="UserMapper">
select * from users where uid=#{uid}
</select>
<resultMap id="UserMapper" type="user">
<collection property="orders" column="uid" ofType="order" select="com.qfedu.pojo.OrderMapper.getOrder"/>
</resultMap>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.pojo.OrderMapper">
<select id="getOrder" resultMap="OrderMapper">
select * from orders where uid=#{uid}
</select>
<resultMap id="OrderMapper" type="order">
<collection property="details" column="oid" ofType="Detail" select="com.qfedu.pojo.DetailMapper.getDetail"/>
</resultMap>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.pojo.DetailMapper">
<select id="getDetail" resultMap="DetailMapper">
select * from details where oid=#{oid}
</select>
<resultMap id="DetailMapper" type="com.qfedu.pojo.Detail">
<association property="p" column="pid" select="com.qfedu.pojo.ProductMapper.getProduct"/>
</resultMap>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.pojo.ProductMapper">
<select id="getProduct" resultMap="ProductMapper">
select * from products where pid=#{pid}
</select>
<resultMap id="ProductMapper" type="Product">
<association property="t" column="tid" select="com.qfedu.pojo.TypeMapper.TypeMapper"/>
</resultMap>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.pojo.TypeMapper">
<select id="TypeMapper" resultType="Types">
select * from types where tid=#{tid}
</select>
</mapper>
这样就可以依次获取到user、order、detail、product、type五个对象以及属性了