发表于: 2017-09-04 23:31:16
2 1005
1. 今天完成的事情
1学习mybatis内部逻辑和代码
在mapper文件中,id值为Mapper 接口中的方法名称,parameterType 值表示Mapper 对应方法的入参类型,而resultMap 值则对应了Mapper 接口表示的返回值类型或者返回结果集的元素类型。
Statement:SqlSession根据Statement ID, 在mybatis配置对象Configuration中获取到对应的MappedStatement对象,然后调用mybatis执行器来执行具体的操作。
SqlSession:mybatis 使用sqlsession来封装对一次数据库的会话访问。通过sqlsession对象实现事物控制和数据查询。 根据Statement ID, 在mybatis配置对象Configuration中获取到对应的MappedStatement对象,然后调用mybatis执行器来执行具体的操作。
Executor:1、根据传递的参数,完成SQL语句的动态解析,生成BoundSql对象,供StatementHandler使用;
2、为查询创建缓存,以提高性能;
3、创建JDBC的Statement连接对象,传递给StatementHandler对象,返回List查询结果。
StatementHandler:
1. 对于JDBC的PreparedStatement类型的对象,创建的过程中,使用SQL语句字符串会包含 若干个? 占位符,然后再对占位符进行设值。
StatementHandler通过parameterize(statement)方法对Statement进行设值;
2. 学习spring配置spring
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许开发者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。J2ee是Java 2 Platform, Enterprise Edition 是一个企业级的开发平台,它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理,这样就可以规范技术与兼容性,解决企业间无法互通的难题。让开发更加方便。
自己理解的spring是管理java中对象的依赖关系,使其以松耦合的方式联系在一起。
Spring 面向方面编程(AOP)Aspect Oriented Programming
通过spring来实现AOP技术。其中通知定义了切面的什么和何时,切点定义了何处。AOP 我理解为在方法执行前后可以去完成相同的业务逻辑,而不需要你去改业务代码。
可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
控制反转 (IOC) Inversion of Control容器。
Spring所倡导的开发方式就是如此,所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
2. 明天的计划
1配置好spring,学习pom的使用方法。
2学习数据库基础和java基础。
3. 遇到问题
1理解spring方面刚刚开始接触所以不懂,准备边实际操作边理解。
2理解mybatis中内部的逻辑需要的知识太多了,所以还是先看基础,后面再继续搞懂。
4. 收获
对spring有了基础的认识,然后对mybatis中的一些语句也有了了解。数据库和java的基础也在看。
评论