MyBatis框架笔记1

传统的JDBC编程步骤:

1、使用JDBC编程需连接数据库,注册驱动和数据库信息

2、操作Connection,打开Statement对象

3、通过Statement执行SQL,返回到ResultSet对象

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

5、关闭数据库相关资源

缺点:

1、工作量大

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

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

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

2、无需再管理数据库连接

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

4、一个会话中,不要操作多个对象,只要操作Session对象即可

5、关闭资源只需关闭一个Session对象即可

缺点:

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

2、无法根据不同的条件组装不同的SQL

3、对多表关联和复杂SQL查询支持较差,需自己写SQL,返回事自己需组装成具体的POSO

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

5、若有HQL,但性能较差

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

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

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

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

4、具有高度灵活、可优化、易维护等特点

缺点:

1、自写SQL代码

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

3、手动创建表

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

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

Log4j简介

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

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

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

3、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注入方式(反转控制):

1、构造方法注入

2、setter注入

3、接口注入

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分为下面几个部分

1、配置数据源

2、配置SqlSessionFactory

3、配置SqlSessionTemplate

4、配置Mapper

5、事务处理

猜你喜欢

转载自my.oschina.net/u/3378039/blog/1813133
今日推荐