@@ -22,7 +22,41 @@ Java Agent是一种Java技术,用于在程序运行时通过Java Virtual Machi
2222Java Agent通常以代理方式注入到Java应用程序中,可以在应用程序启动时或在运行过程中对字节码进行修改、增强和监视。通过Java Agent,可以实现一些高级的功能,如性能监控、代码增强、AOP(面向切面编程)等。
2323Java Agent操作的是字节码层面,能够在应用程序加载类之前或之后对类进行修改,而不仅仅是访问和操作类的结构和状态
2424
25+ 反射(Reflection)的记忆:将"反射"与反射镜联系起来。反射镜可以反射光线,让人们能够看到自己的影像。类似地,反射(Reflection)让程序能够看到自身的结构和行为。
26+ 内省(Introspection)的记忆:将"内省"与内心联系起来。内省(Introspection)让程序能够观察和了解自身的结构和信息,类似于人们观察和反思自己的内心状态
27+
2528## mybatis的mapper.xml将查询的结果反射到对应的对象实体里
2629即定义一个参数对象,然后取到对象的当前属性值插入到对应的sql中
2730
28- 总结mybatis创建的流程
31+ 总结mybatis创建的流程
32+
33+
34+ 为什么要集成序列化 因为有的数据存在内存 有的数据存在硬盘
35+
36+
37+
38+ ** 配置文件** :MyBatis 使用 XML 配置文件来定义数据源、映射器(Mapper)和其他相关设置。配置文件中包含了数据库连接信息、SQL 映射语句和全局配置等。
39+ 通过配置文件创建对应的数据库信息和映射mapper文件的位置
40+
41+ ** 数据库连接** :MyBatis 支持多种数据库连接方式,包括基本的 JDBC 连接、连接池等。你可以在配置文件中指定连接信息,以便 MyBatis 建立与数据库的连接。
42+
43+ 映射器(Mapper):映射器是 MyBatis 的核心组件,它定义了 SQL 语句和 Java 对象之间的映射关系。映射器文件中包含了 SQL 语句和结果映射配置,用于执行数据库操作和将结果映射到 Java 对象。
44+ 创建代理实例,这样就不用生成对应的mapper.xml文件,类似于convertor生成赌对应的方法
45+
46+ SQL 语句:MyBatis 支持使用原生 SQL 语句或使用 #{...} 占位符的动态 SQL 语句。你可以在映射器文件中编写 SQL 语句,通过参数传递和结果映射来执行数据库操作。
47+
48+ 参数处理:MyBatis 支持将参数传递给 SQL 语句,可以通过 #{...} 占位符将参数传递给 SQL 语句中的参数位置。参数可以是简单类型、Java 对象或集合类型。
49+
50+ 结果映射:MyBatis 提供了多种方式来将查询结果映射到 Java 对象,包括基于列名的映射、嵌套映射、关联映射等。你可以在映射器文件中定义结果映射关系,将查询结果转换为 Java 对象。
51+
52+ 动态 SQL:MyBatis 支持动态 SQL,可以根据条件动态生成 SQL 语句。你可以使用 <if >、<choose >、<when >、<otherwise > 等标签来编写动态 SQL。
53+
54+ 缓存:MyBatis 提供了一级缓存和二级缓存来提高查询性能。一级缓存是会话级别的缓存,而二级缓存是全局级别的缓存。你可以在配置文件中配置缓存策略和启用缓存功能。
55+ 1.一级缓存:即sqlsession级别的缓存,是开启的;可通过sqlsession的close、更新和删除和插入的commit、clearCache方法、映射文件xml配置flushcahche=true
56+
57+ 插件(Interceptor):MyBatis 的插件机制允许你在 SQL 执行过程中拦截和修改 SQL 语句、参数和结果。你可以编写自定义插件来实现额外的功能,如日志记录、性能监控等。
58+
59+ 1.使用动态代理对mybatis的特定方法进行增强,对特定方法增强,在方法前或者方法后做处理 interceptor.plugin(target);
60+ 2.比如redis的插件,支持使用redis的缓存机制对分布式做缓存
61+
62+ 事务管理:MyBatis 可以与事务管理器集成,例如使用 JDBC 的事务管理或使用 Spring 框架的声明式事务管理。你可以在配置文件中配置事务管理器,并在需要时使用事务来保证数据的一致性
0 commit comments