一、建立Bean的妙用
1.private Integer id;
此定义的好处就是可以判断为空(if(id==null))
成员变量:private
属性:get和set方法去掉get和set后首字母小写,即为属性
二、多表联查注意点:
<select id="getOrdersByOid" resultMap="ordersMap">
select * from tbl_orders where oid = #{oid}
</select>
<resultMap type="orders" id="ordersMap">
<!-- 主键资源,property代表Bean类中的属性名,column代表表中的字段名 -->
<id property="oid" column="oid" />
<!-- result代表普通的列,如果字段和属性名一致,则可以省略 -->
<result property="price" column="price" />
<!-- 返回为一个对象,如果十多个对象就需要是collection 。column是customer通过查询的字段。select是下一张表的namespace+id -->
<association property="customer" column="cid" select="com.james.pojo.CustomersMapper.getCustomersByCid" fetchType="lazy" />
<!-- 返回为一个对象的集合,column是details中查询的字段 -->
<collection property="details" column="oid" select="com.james.pojo.DetailsMapper.getDetailsByOid" ofType="details"></collection>
</resultMap>
注意点1.当查询出来的有null时,可能是property(Bean中的属性名)和 column(数据库表的字段名) 不一样,然后你又没有写这个。只有property和column一样时才可以不写
三、mapper接口的方式:
mybatis中注册:
<mappers>
<!-- <mapper class="com.qf.dao.IUserDao"/> -->
<mapper resource="com/qf/dao/UserMapper.xml"/>
<!-- <package name="com.qf.dao"/> -->
</mappers>
使用package可能会出现查找不到的问题
注意点:1.namespace必须是对应Dao接口的全类名(包名加类名)
2.id必须是对应Dao中的方法名