是一款优秀的持久层框架,它避免了jdbc代码、将sql语句放在java中以及结果集的处理。利于后期的维护。它将sql语句放到xml文件中。
mybatis有sqlsessionfactory,用来创建sqlsession,sqlsession是用来执行xml中的sql语句的。
mybatis的配置文件sqlmapconfig中主要配置数据库连接池,以及别名,还有加载每个mapper.xml。当和spring结合以后,配置数据库连接池和扫描mapper的工作就交给spring了,在spring的配置文件中配置。
mybatis的一个mapper.xml对应一个mapper接口,里面一个sql语句对应一个方法。
mybatis建立了java对象和数据库记录的映射关系,将结果集映射到一个java对象中(数据库中记录字段和java对象属性一致)。当映射的字段名称不对应,就需要使用resultmap手动进行映射,将查询出的结果一一映射到java对象的对应属性中。
mybatis的高级映射,支持一对一、一对多、多对多映射。
一对一映射:一个java对象中包含另外一个对象。一个订单属于一个用户的。order中含有user。这个时候resultmap映射时,包含的user对象使用
一对多:一个java对象包含另一个对象集合。一个订单包含多个订单条目list<>。resultmap中使用
spring融合mybatis时,spring的配置文件要配置数据库连接池,配置sqlsessionfactory,因为sqlsessionfactory是单例模式,用ioc容器管理。还有配置mapper扫描器。