mybatis动态代理机制
- mybatis自动创建dao接口的实现类 ,在实现类中调用sqlsession相应的方法selectList(String sql)
,insert(String sql,Object)等。如sqlsession.select(sql) - 生成sqlsession对象的代码较固定,可由mybatis的工具类,读取mybatis主配置文件生成SqlSessionFactory类的对象factory,factory.opensession()生成sqlsession。
- mybatis如何推断信息生成dao接口实现类? 最主要的信息是操作相应sql语句,与sqlsession调用查询或插入的方法。如studentDao.insert(student),返回值类型为Integer,根据dao接口类型名和其方法就可推断出需要的信息。sql=studentDao全限定名称.insert,对应sql映射文件中的唯一一条sql语句。再根据select()的返回值类型和参数推断出sqlsession调用的方法为sqlsession.insert(sql,student)。这样就能生成各个dao接口的实现类了。