MyBatis框架笔记1

传统的JDBC编程步骤:web

一、使用JDBC编程需链接数据库,注册驱动和数据库信息spring

二、操做Connection,打开Statement对象数据库

三、经过Statement执行SQL,返回到ResultSet对象apache

四、使用ResultSet读取数据,同事转换为具体的POJO对象编程

五、关闭数据库相关资源json

 

 

缺点:缓存

一、工做量大mybatis

二、对JDBC编程可能产生异常进行处理并正确关闭资源mvc

 

 

(全自动——小中型公司适用)Hibernate框架使用:app

一、于传统JDBC编程而言消除了代码的映射规则,并分离到XML或注解里去配置

二、无需再管理数据库链接

三、借助SessionFactory对象对数据库的表进行操做——ORM

四、一个会话中,不要操做多个对象,只要操做Session对象便可

五、关闭资源只需关闭一个Session对象便可

 

 

缺点:

一、全表映射可能带来不便,如更新时需发送全部的字段

二、没法根据不一样的条件组装不一样的SQL

三、对多表关联和复杂SQL查询支持较差,需本身写SQL,返回时本身需组装成具体的POJO

四、不能有效支持存储过程

五、如有HQL,但性能较差

 

 

 

(半自动——大公司适用)MyBatis框架使用:

一、需手工匹配提供POJO、SQL和映射关系

二、借助SqlSessionFactory对象对数据库的表进行操做——ORM

三、接口编程映射器只需一个接口和映射文件即可运行

四、具备高度灵活、可优化、易维护等特色

 

 

 

 

缺点:

一、自写SQL代码

二、获取SqlSessionFactory对象有两种方法,一种是XML配置获取(编码硬代码、便之后期维护),另外一种是代码获取

三、手动建立表

 

 

 

 

映射器是有Java接口和XML文件共同组成的(定义参数类型、描述缓存、描述SQL语句、定义查询结果和POJO的映射关系)

关于SqlSession和Mapper是MyBatis的核心内容和难点

 

Log4j简介

Log4j有三个主要组件:Loggers(记录器),Appenders(输出源)、Layouts(布局)

一、Loggers组件在系统中分为五个级别:DEBUG<INFO<WARN<ERROR<FATAL

二、Appenders组件经常使用的类有:org.apache.log4j.ConsoleAppender(控制台)、org.apache.log4j.FileAppender(文件)、org.apache.log4j.DailyRollingFileAppender(天天产生一个日志文件)、org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)、org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

三、Layouts组件经常使用的类有:org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(能够灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

 

经常使用模板:(log4j.properties)

log4j.rootLogger=DEBUG , stdout

log4j.logger.org.mybatis=DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

 

 

 

反射技术和动态代理

通常的动态代理分为两种,一种是JDK反射机制提供的代理,另外一种是CGLIB代理

 

 

Spring框架已经成为JAVA世界最为流行的IOC(反转控制)和AOP(面向切面编程)

特色:更好的使业务层和模式层以及业务层和操做实体对象层(dao层)分离,“高内聚,低耦合”

 

 

IOC注入方式(反转控制):

一、构造方法注入

二、setter注入

三、接口注入

 

AOP(面向切面编程):最大的用处是事务的控制

 

 

数据库

项目      脏读    不可重读(同一条记录)   幻读

脏读      √         √                     √

读写提交   ×        √                     √

可重复读   ×        ×                     √

序列化     ×        ×                    ×

 

 

Oracle数据库只支持读写提交和序列化(默认隔离级别为读写提交),MySQL数据库默认隔离级别为可重复读

 

 

避免数据的脏读、不可重读、和幻读最佳选择是“序列化”即实现Serializable接口

 

 

SpringMVC框架它的核心是DispatcherServlet,Servlet将根据拦截的配置去拦截一些请求

附:Strust2框架它的核心是FilterDispatcher,Servlet将根据拦截的配置去拦截一些请求

@ResponseBody//标注把结果转换为JSON数据--需配置

配置:

<bean class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdaper”>

<property name=”messageConverters”>

 <list>

   <ref bean=”mappingJacksonHttpMessageConverter”/>

 </list>

</property>

</bean>

//配置JSON类型

<bean id=“mappingJacksonHttpMessageConverter” class=”org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”>

<property name=”messageConverters”>

 <list>

   <value>application/json;charset=UTF-8</value>

 </list>

</property>

</bean>

 

配置MyBatis-Spring分为下面几个部分

一、配置数据源

二、配置SqlSessionFactory

三、配置SqlSessionTemplate

四、配置Mapper

五、事务处理

相关文章
相关标签/搜索