getmapper是怎么把mapper接口里的crud方法和mapper.xml里写的SQL语句对应的
时间: 2024-05-30 18:08:56 浏览: 96
继承Mapper实现的方法,无需编写太多mapper.xml文件,即可获得CRUD功能
getmapper 是通过 Java 的动态代理技术来实现的。在运行时,它会动态地生成一个实现了接口的代理类,并且在代理类中拦截接口中的方法调用。在拦截到方法调用后,它会根据方法名和参数类型等信息,动态地生成对应的 SQL 语句,并将 SQL 语句传递给 MyBatis 框架执行。
具体来说,getmapper 会根据方法名解析出对应的 SQL 语句,然后使用 MyBatis 的 SqlSession 执行 SQL 语句,并将执行结果转换为接口方法的返回值。在解析 SQL 语句时,getmapper 会根据方法的参数类型来判断参数值的来源,例如,如果参数是一个实体类对象,则会将实体类对象的属性值映射到 SQL 语句中的相应位置。
在 Mapper.xml 文件中,getmapper 会根据接口方法名找到对应的 SQL 语句,并将 SQL 语句中的参数占位符(如 #{param1})替换为实际的参数值。同时,getmapper 还支持在 XML 文件中使用动态 SQL,可以根据方法参数的值动态地生成 SQL 语句。
总之,getmapper 通过动态代理技术和 MyBatis 框架的支持,实现了将接口方法和 Mapper.xml 文件中的 SQL 语句对应起来,使得开发人员可以非常方便地进行数据库操作。
阅读全文