实体类
注意事项:
1.实体类各属性名需要与数据库中表的属性名一致,否则在取得数据的时候会得到null(若属性名与表的字段名不一致,可以在该实体类对应的dao层配置文件中使用resultMap配置,这样属性名与字段名不一致也能读取)
property是实体类的属性,column是字段名
如:
<resultMap id="bookMap" type="pers.zwy.ls.domain.Book">
<id property="id" column="id"></id>
<result property="nickname" column="name"></result>
</resultMap>
2.实体类中的一对一关系使用association标签
此处lend实体与user和book实体都是一对一关系
如:
<resultMap id="lendMap" type="pers.zwy.ls.domain.Lend">
<!--省略其他配置-->
...
<association property="user" javaType="pers.zwy.ls.domain.User" select="pers.zwy.ls.dao.UserDao.findById" column="uid"></association>
<association property="book" javaType="pers.zwy.ls.domain.Book" select="pers.zwy.ls.dao.BookDao.findById" column="bid"></association>
</resultMap>
3.实体类中的一对多关系使用collection标签
此处User和Lend是一对多关系
<resultMap id="userMap" type="pers.zwy.ls.domain.User">
<id property="id" column="id"></id>
<!--省略其他配置-->
<collection property="lends" ofType="pers.zwy.ls.domain.Lend" select="pers.zwy.ls.dao.LendDao.findByUid"
column="id"></collection>
</resultMap>
实体类的Mapper配置文件
1.mapper.xml名称需要与dao类名称一致(规范)(其实xml的名字是什么都能用,只要namespace指向的dao类是正确的并且sqlMapConfig.xml的mappers中指定了这个xml文件)
2.mapper.xml的namespace里面应该是该实体类对应的DAO(数据访问对象)类的包名
3.该配置文件内的select,update,delete,insert标签内写sql语句
4.resultType是指实体类(不需要查询其他属性,实体类属性都是表的字段对应的数据)
5.resultMap是指实体类(可以将与该实体类具有关联关系的其他实体类查询并封装到该实体类中)
mybaties的配置文件SqlMapConfig.xml
1.SqlMapConfig.xml文件内,需要配置数据库连接池
2.SqlMapConfig文件内,需要在<mappers>标签内配置用到的mapper.xml
3.若与spring整合,Spring接管mybatis,SqlMapconfig中不需要有其他配置。spring的配置中会将mybatis的配置加上.