- mybati使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射
什么是反射、内省?
- 反射就是运行时获取一个类的所有信息,可以获取到.class的任何定义的信息(包括成员 变量,成员方法,构造器等)
可以操纵类的字段、方法、构造器等部分。
2.内省基于反射实现,主要用于操作JavaBean,通过内省 可以获取bean的getter/setter
生活中的例子?
反射就像我们照镜子,照镜子时候 你的所有信息会毫无出错毫无保留的反射到镜子中,而java中反射就像是运行时用一把镜子去照.class字节码 将这个类的所有信息照出来,‘照’出的结果是客观的,是正确的;
内省就像我们反省自己,通常我们是针对犯错而进行反省,根据所犯错误反省总结出结论,这个结论是主观的,不一定正确的,有时候你觉得你自己做错了,但可能事实上自己无可厚非。java中内省,是针对javaBean进行的,目的是为了找出bean的getter和setter以便操作这个bean。只要看到有getter或者setter 就认为这个类有那么一个字段,比如看到getName() 内省就会认为这个类中有name字段,但事实上并不一定会有name;
- mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问 题,对jdbc
进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对 数据库的持久化操作。
什么是ORM思想
orm:Object Relation Mapping :对象关系映射
ORM框架自动实现Entity实体的属性与关系型数据库字段的映射。CRUD的工作则可以交给ORM来自动生成代码方式实现。隐藏了数据访问细节,“封闭”的通用数据库交互,他使得我们的通用数据库交互变得简单易行,并且完全不用考虑SQL语句。大大提高我们开发效率, 这样一来也减少我们维护一个复杂 缺乏灵活性数据访问层的成本。
参考资料:https://blog.csdn.net/zhanjixun/article/details/68256724